// filename: Editor.h // author: John Flores // date: May, 2003. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef EDITOR_H #define EDITOR_H #include "Component.h" #include "Textbox.h" #include "Listbox.h" class Editor: public Component { enum { NONE, SAVE_EXIT = key::CTRL_X, SAVE = key::CTRL_S, EXIT = key::CTRL_Q, CUT = key::CTRL_K, COPY = key::CTRL_L, PASTE = key::CTRL_P, FIND = key::CTRL_F, REPLACE = key::CTRL_R, GOTOLINE = key::CTRL_G, TOGGLENUMS = key::CTRL_N, PAGEUP = key::CTRL_U, PAGEDOWN = key::CTRL_D, ABOUT = key::F1 }; Listbox cmdlist; Textbox textbox; enum { FILENAME_LEN = 50, TXTFIND_LEN = 50, TXTREPLACE_LEN = 50 }; char filename[FILENAME_LEN + 1], txtfind[TXTFIND_LEN + 1], txtreplace[TXTREPLACE_LEN + 1]; void save(); void find(); void replace(); void gotoline(); int getstring(const char *prompt, char *str, int len); void dspmsg(const char *s1, const char *s2=NULL, const char *s3=NULL); public: Editor(); virtual ~Editor() { } bool edit(const char *filename = NULL); void notify(Component *notifier); }; #endif