Midas
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Еще блок мелких доработок: 1) Если заменить код в scite\win32\SciTEWinDlg.cxx в процедуре SciTEWin::IncrementFindMessage(HWND hDlg, UINT message, WPARAM wParam) на Код: case WM_INITDIALOG:{ wFindIncrement = hDlg; LocaliseDialog(hDlg); SetWindowLong(hDlg, GWL_STYLE, WS_TABSTOP || GetWindowLong(hDlg, GWL_STYLE)); dlg.SetItemTextU(IDC_INCFINDTEXT, ""); //findWhat.c_str() SetFocus(hDlg); PRectangle aRect = wFindIncrement.GetPosition(); PRectangle aTBRect = wStatusBar.GetPosition(); PRectangle aNewRect = aTBRect; aNewRect.top = aNewRect.bottom - (aRect.bottom - aRect.top); aNewRect.right = aNewRect.left + aRect.right - aRect.left; //~ RegisterHotKey(hDlg,1,0,VK_F3); //~ RegisterHotKey(hDlg,2,MOD_SHIFT,VK_F3); // Midas 23.02.2007 if (props.GetInt("find.inc.adv.keys")){ // if: Shift+ENTER - next search does not work RegisterHotKey(hDlg,2,MOD_CONTROL, VK_RETURN); RegisterHotKey(hDlg,3,0,VK_UP); RegisterHotKey(hDlg,4,0,VK_DOWN); } wFindIncrement.SetPosition(aNewRect); return TRUE; } case WM_SETFOCUS: return 0; case WM_HOTKEY: if (wParam == 1) FindNext(false,false); if (wParam == 2) FindNext(true,false); if (wParam == 3 || wParam == 4) ::SendMessage(hDlg, WM_CLOSE, 0, 0); break; case WM_CLOSE: //~ UnregisterHotKey(hDlg,1); //~ UnregisterHotKey(hDlg,2); // Midas if (props.GetInt("find.inc.adv.keys")){ UnregisterHotKey(hDlg,2); UnregisterHotKey(hDlg,3); UnregisterHotKey(hDlg,4); } ::SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0); break; case WM_COMMAND: | то при find.inc.adv.keys=1 по стрелкам вниз/вверх окно инкрем. поиска закроется, а по Ctrl+ENTER поиск будет вестись назад. 2) Следующии исправления добавляют "[R/O]" в Табе для файлов "только для чтения" SciTEBase.h: Строка: 225 Код: class Buffer : public RecentFile { public: sptr_t doc; bool isDirty; bool isRO; //Midas 23.02.2007 !!!! bool useMonoFont; UniMode unicodeMode; time_t fileModTime; time_t fileModLastAsk; enum { fmNone, fmMarked, fmModified} findMarks; SString overrideExtension; ///< User has chosen to use a particular language FoldState foldState; Buffer() : RecentFile(), doc(0), isDirty(false), useMonoFont(false), unicodeMode(uni8Bit), fileModTime(0), fileModLastAsk(0), findMarks(fmNone), foldState() { } void Init() { RecentFile::Init(); isDirty = false; isRO = false; //Midas 23.02.2007 !!!! | SciTEBase.cxx: строка: 4134 Код: case IDM_READONLY: isReadOnly = !isReadOnly; // Midas 23.02.2007 buffers.buffers[buffers.Current()].isRO = isReadOnly; SendEditor(SCI_SETREADONLY, isReadOnly); UpdateStatusBar(true); CheckMenus(); // Midas 23.02.2007 BuffersMenu(); break; | SciTEBuffers.cxx: Строка: 813 Код: if (buffers.buffers[pos].isDirty) { strcat(entry, " *"); strcat(titleTab, " *"); } // Midas if (buffers.buffers[pos].isRO) { strcat(entry, " [R/O]"); strcat(titleTab, " [R/O]"); } //----- | Пока все |