X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fminibuffer.h;h=394f9429cf6dd78b5f7b6f59eaca4f62561a137f;hb=98c966c64594611e469313314abd1e59524adb4a;hp=80cfc15ccb54089a12835484716cc428aa9e5531;hpb=797d87b4513088a66b17c7ac653b84e36ea80458;p=lyx.git diff --git a/src/minibuffer.h b/src/minibuffer.h index 80cfc15ccb..394f9429cf 100644 --- a/src/minibuffer.h +++ b/src/minibuffer.h @@ -2,89 +2,113 @@ #ifndef MINIBUFFER_H #define MINIBUFFER_H +#include +#include + #include FORMS_H_LOCATION #include "LString.h" -#include "gettext.h" #ifdef __GNUG__ #pragma interface #endif class LyXView; +class DropDown; +class Timeout; /// -class MiniBuffer { +class MiniBuffer : public SigC::Object { public: + enum State { + spaces, + nospaces + }; + /// MiniBuffer(LyXView * o, FL_Coord x, FL_Coord y, FL_Coord h, FL_Coord w); + /// destructor + ~MiniBuffer(); + + /// create drop down + void dd_init(); + + /// + void addSet(string const &, + string const & = string()); + /// - bool shows_no_match; + void message(string const & str); /// - void setTimer(int a) { - fl_set_timer(timer, a); - } + void messagePush(string const & str); /// - void Set(string const & = string(), - string const & = string(), - string const & = string(), - int delay_secs= 6); - /// - string GetText() const { return text; } + void messagePop(); + + /** Makes the minibuffer wait for a string to be inserted. + Waits for a string to be inserted into the minibuffer, when + the string has been inserted the signal stringReady is + emitted. + */ + void getString(State space, + std::vector const & completion, + std::vector & history); /// - void Init(); + void redraw(); /// - void ExecCommand(); - /** allows to store and reset the contents one time. Usefull - for status messages like "load font" (Matthias) - */ - void Store(); + int peek_event(FL_OBJECT *, int, int); /// - void Reset(); + SigC::Signal1 stringReady; /// - void Activate(); + //SigC::Signal0 escape; /// - void Deactivate(); + SigC::Signal0 timeout; +private: /// - static void ExecutingCB(FL_OBJECT *ob, long); + void activate(); /// - static void TimerCB(FL_OBJECT *ob, long); + void deactivate(); /// - static int peek_event(FL_OBJECT *, int, FL_Coord, FL_Coord, - int, void *); -private: + void prepare(); + /// + void stored_slot(); /// - LyXView * owner; + void stored_set(string const &); + /// set the minibuffer content if str non-empty + void set_complete_input(string const &); + /// append c to the current contents + void append_char(char c); + /// set the minibuffer content + void set_input(string const &); + /// + void init(); + /// + string stored_input; + /// + bool stored_; + /// + LyXView * owner_; /// string text; /// string text_stored; /// FL_OBJECT * add(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord); - /// - FL_OBJECT * timer; + /// + Timeout * timer; + /// + Timeout * stored_timer; + /// the dropdown menu + DropDown * dropdown_; /// FL_OBJECT * the_buffer; /// - string cur_cmd; - /// - enum{ MAX_HISTORY = 10 }; - /// - string history[MAX_HISTORY]; - /// - int history_idx, history_cnt; - /// - void addHistory(string const &cmd) { - if (history_cnt == 0 - || (history_cnt > 0 - && cmd != history[(history_cnt - 1) % MAX_HISTORY])) { - history[history_cnt % MAX_HISTORY] = cmd; - ++history_cnt; - } - history_idx = history_cnt; - } - /// - string getHistory() { return history[history_idx % MAX_HISTORY]; } + std::vector completion_; + /// + std::vector * history_; + /// + std::vector::iterator hist_iter; + /// + State state_; }; #endif