Add Number Lines command
This commit is contained in:
parent
afbd317453
commit
bc078a87b5
|
@ -41,6 +41,7 @@ void do_new(Fl_Widget *w, void *data) {
|
|||
file_name = "";
|
||||
buffer.remove(0, buffer.length());
|
||||
top.status1->value(empty_status);
|
||||
top.status2->value("");
|
||||
top.status3->value("");
|
||||
modified = false;
|
||||
}
|
||||
|
@ -49,11 +50,11 @@ void load_file(const char *name, bool change=true) {
|
|||
fl_message_title(window_title);
|
||||
switch (buffer.loadfile(name)) {
|
||||
case 0:
|
||||
top.status1->value("Opened");
|
||||
if (change) {
|
||||
file_name = name;
|
||||
top.status2->value(fl_filename_name(name));
|
||||
}
|
||||
top.status1->value("Opened");
|
||||
top.status3->value("");
|
||||
modified = false;
|
||||
break;
|
||||
|
@ -90,11 +91,11 @@ void save_file(const char *name, bool change=true) {
|
|||
fl_message_title(window_title);
|
||||
switch (buffer.savefile(name)) {
|
||||
case 0:
|
||||
top.status1->value("Saved");
|
||||
if (change) {
|
||||
file_name = name;
|
||||
top.status2->value(fl_filename_name(name));
|
||||
}
|
||||
top.status1->value("Saved");
|
||||
top.status3->value("");
|
||||
modified = false;
|
||||
break;
|
||||
|
@ -318,6 +319,27 @@ void do_prefix_lines(Fl_Widget *w, void *data) {
|
|||
}
|
||||
}
|
||||
|
||||
void do_number_lines(Fl_Widget *w, void *data) {
|
||||
if (buffer.selected()) {
|
||||
char *t = buffer.selection_text();
|
||||
std::stringstream sel(t);
|
||||
free(t);
|
||||
std::string line;
|
||||
std::string result;
|
||||
int n = 0;
|
||||
while (std::getline(sel, line)) {
|
||||
n++;
|
||||
result += std::to_string(n);
|
||||
result += ". ";
|
||||
result += line;
|
||||
result += "\n";
|
||||
}
|
||||
buffer.replace_selection(result.c_str());
|
||||
} else {
|
||||
top.status1->value("Nothing selected");
|
||||
}
|
||||
}
|
||||
|
||||
void toggle_word_wrap(Fl_Widget *w, void *data) {
|
||||
if (word_wrap) {
|
||||
top.editor->wrap_mode(Fl_Text_Editor::WRAP_NONE, 80);
|
||||
|
@ -386,6 +408,7 @@ const Fl_Menu_Item menu_items[] = {
|
|||
{ " &Upper case", FL_ALT + 'u', do_upper_case, 0,
|
||||
FL_MENU_DIVIDER },
|
||||
{ " &Prefix lines... ", FL_ALT + 'p', do_prefix_lines },
|
||||
{ " &Number lines ", FL_ALT + 'n', do_number_lines },
|
||||
{ 0 },
|
||||
{ "&View", 0, 0, 0, FL_SUBMENU },
|
||||
{ " &Word wrap", 0, toggle_word_wrap, 0,
|
||||
|
|
Loading…
Reference in New Issue