X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfr0.C;h=24a22dad9642a2a6bc791489db2c783eb72de82e;hb=ba0820145782f4f6a31d9fe88c73e15d4a3e1fd6;hp=9dc5c15b4662a304a0d3abfc066aadbf3cf7d735;hpb=35584afc1162dec2cf9fff79305e95cb3b75aefb;p=lyx.git diff --git a/src/lyxfr0.C b/src/lyxfr0.C index 9dc5c15b46..24a22dad96 100644 --- a/src/lyxfr0.C +++ b/src/lyxfr0.C @@ -1,159 +1,135 @@ /* This file is part of - * ====================================================== + * ====================================================== * * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich, - * Copyright 1995-1999 The LyX Team. + * Copyright 1995-2000 The LyX Team. * - * ======================================================*/ + * ====================================================== */ #include -#include -#include -#include - #ifdef __GNUG__ #pragma implementation #endif -#include "LString.h" -#include "lyx_main.h" -#include FORMS_H_LOCATION -#include "form1.h" #include "lyxfr0.h" #include "lyxfr1.h" -#include "lyxfunc.h" -#include "lyxscreen.h" -#include "debug.h" -#include "lyxtext.h" -#include "gettext.h" -#include "LyXView.h" // only because of form_main - -//--------------------------------------------------------------- -// I hate global variables, but the same search object must be used everywhere, -// and the form is also global, so... -LyXFindReplace1 _FR; - -// This one should be a protected member of LyXFindReplace1 -// Form creation/destruction must also be done in LyXFindReplace1 -extern FD_form_search *fd_form_search; - -//--------------------------------------------------------------- +#include "lyx_gui_misc.h" // callbacks for form form_search -void SearchCancelCB(FL_OBJECT *, long) +void SearchCancelCB(FL_OBJECT * ob, long) { - _FR.SearchCancelCB(); + fl_hide_form(ob->form); } -void SearchForwardCB(FL_OBJECT *, long) +void SearchForwardCB(FL_OBJECT * ob, long) { - _FR.SearchCB(true); + LyXFindReplace * lfr = static_cast(ob->form->u_vdata); + lfr->SearchCB(true); } -void SearchBackwardCB(FL_OBJECT *, long) +void SearchBackwardCB(FL_OBJECT * ob, long) { - _FR.SearchCB(false); + LyXFindReplace * lfr = static_cast(ob->form->u_vdata); + lfr->SearchCB(false); } -void SearchReplaceAllCB(FL_OBJECT *, long) +void SearchReplaceAllCB(FL_OBJECT * ob, long) { - _FR.SearchReplaceAllCB(); + LyXFindReplace * lfr = static_cast(ob->form->u_vdata); + lfr->SearchReplaceAllCB(); } -void SearchReplaceCB(FL_OBJECT *, long) +void SearchReplaceCB(FL_OBJECT * ob, long) { - _FR.SearchReplaceCB(); + LyXFindReplace * lfr = static_cast(ob->form->u_vdata); + lfr->SearchReplaceCB(); } -//--------------------- LyXFindReplace0's implementation ------------ -LyXFindReplace0::LyXFindReplace0() -{ - fCaseSensitive = false; - fMatchWord = false; -} +SearchForm::SearchForm() + : search_form(0) +{} -void LyXFindReplace0::StartSearch() +SearchForm::~SearchForm() { - FD_form_search *fd_fs = fd_form_search; - - if (fd_fs->form_search->visible) { - fl_raise_form(fd_fs->form_search); - } else { - fl_show_form(fd_fs->form_search, - FL_PLACE_MOUSE | FL_FREE_SIZE, FL_FULLBORDER, - _("Find & Replace")); // RVDK_PATCH_5 - } - ReInitFromForm(); + // The search_form should be closed and freed when SearchForm + // is destructed. } -void LyXFindReplace0::ReInitFromForm() +void SearchForm::SearchCancelCB() { - FD_form_search *fd_fs = fd_form_search; - - lsSearch = fl_get_input(fd_fs->input_search); - fCaseSensitive = fl_get_button(fd_fs->btnCaseSensitive); - fMatchWord = fl_get_button(fd_fs->btnMatchWord); + fl_hide_form(search_form->form_search); } -// Returns the value of the replace string in the form -string const LyXFindReplace0::ReplaceString() +void SearchForm::StartSearch(LyXFindReplace * lfr) { - return string(fl_get_input(fd_form_search->input_replace)); + static int ow = -1, oh; + + if (!search_form) { + search_form = create_form_form_search(); + fl_set_form_atclose(search_form->form_search, + CancelCloseBoxCB, 0); + } + // Set the u_vdata + search_form->form_search->u_vdata = lfr; + + + if (search_form->form_search->visible) { + fl_raise_form(search_form->form_search); + } else { + fl_show_form(search_form->form_search, + FL_PLACE_MOUSE | FL_FREE_SIZE, FL_FULLBORDER, + _("Find & Replace")); // RVDK_PATCH_5 + if (ow < 0) { + ow = search_form->form_search->w; + oh = search_form->form_search->h; + } + fl_set_form_minsize(search_form->form_search, ow, oh); + } } -void LyXFindReplace0::SearchCancelCB() +// Returns the value of the replace string in the form +string SearchForm::ReplaceString() const { - fl_hide_form(fd_form_search->form_search); + return fl_get_input(search_form->input_replace); } -void LyXFindReplace0::SetReplaceEnabled(bool fEnable) +void SearchForm::replaceEnabled(bool fEnable) { - FD_form_search *fd_fs = fd_form_search; fReplaceEnabled = fEnable; if (fEnable) { - fl_activate_object(fd_fs->replace_button); - fl_activate_object(fd_fs->replaceall_button); - fl_activate_object(fd_fs->input_replace); - fl_set_object_lcol(fd_fs->replace_button, FL_BLACK); - fl_set_object_lcol(fd_fs->replaceall_button, FL_BLACK); - fl_set_object_lcol(fd_fs->input_replace, FL_BLACK); + fl_activate_object(search_form->replace_button); + fl_activate_object(search_form->replaceall_button); + fl_activate_object(search_form->input_replace); + fl_set_object_lcol(search_form->replace_button, FL_BLACK); + fl_set_object_lcol(search_form->replaceall_button, FL_BLACK); + fl_set_object_lcol(search_form->input_replace, FL_BLACK); } else { - fl_deactivate_object(fd_fs->replace_button); - fl_deactivate_object(fd_fs->replaceall_button); - fl_deactivate_object(fd_fs->input_replace); - fl_set_object_lcol(fd_fs->replace_button,FL_INACTIVE); - fl_set_object_lcol(fd_fs->replaceall_button,FL_INACTIVE); - fl_set_object_lcol(fd_fs->input_replace, FL_INACTIVE); + fl_deactivate_object(search_form->replace_button); + fl_deactivate_object(search_form->replaceall_button); + fl_deactivate_object(search_form->input_replace); + fl_set_object_lcol(search_form->replace_button, FL_INACTIVE); + fl_set_object_lcol(search_form->replaceall_button, FL_INACTIVE); + fl_set_object_lcol(search_form->input_replace, FL_INACTIVE); } } -void LyXFindReplace0::SetSearchString(string const &ls) -{ - lsSearch = ls; - fl_set_input(fd_form_search->input_search, ls.c_str()); -} - - -//--------------------------------------------------------------- -//HB??: Maybe _FR.StartSearch should be called in lyxfunc.C instead of MenuSearch() ? - -void MenuSearch() +void SearchForm::SetSearchString(string const & ls) { - _FR.StartSearch(); + fl_set_input(search_form->input_search, ls.c_str()); }