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 = "";
|
file_name = "";
|
||||||
buffer.remove(0, buffer.length());
|
buffer.remove(0, buffer.length());
|
||||||
top.status1->value(empty_status);
|
top.status1->value(empty_status);
|
||||||
|
top.status2->value("");
|
||||||
top.status3->value("");
|
top.status3->value("");
|
||||||
modified = false;
|
modified = false;
|
||||||
}
|
}
|
||||||
|
@ -49,11 +50,11 @@ void load_file(const char *name, bool change=true) {
|
||||||
fl_message_title(window_title);
|
fl_message_title(window_title);
|
||||||
switch (buffer.loadfile(name)) {
|
switch (buffer.loadfile(name)) {
|
||||||
case 0:
|
case 0:
|
||||||
|
top.status1->value("Opened");
|
||||||
if (change) {
|
if (change) {
|
||||||
file_name = name;
|
file_name = name;
|
||||||
top.status2->value(fl_filename_name(name));
|
top.status2->value(fl_filename_name(name));
|
||||||
}
|
}
|
||||||
top.status1->value("Opened");
|
|
||||||
top.status3->value("");
|
top.status3->value("");
|
||||||
modified = false;
|
modified = false;
|
||||||
break;
|
break;
|
||||||
|
@ -90,11 +91,11 @@ void save_file(const char *name, bool change=true) {
|
||||||
fl_message_title(window_title);
|
fl_message_title(window_title);
|
||||||
switch (buffer.savefile(name)) {
|
switch (buffer.savefile(name)) {
|
||||||
case 0:
|
case 0:
|
||||||
|
top.status1->value("Saved");
|
||||||
if (change) {
|
if (change) {
|
||||||
file_name = name;
|
file_name = name;
|
||||||
top.status2->value(fl_filename_name(name));
|
top.status2->value(fl_filename_name(name));
|
||||||
}
|
}
|
||||||
top.status1->value("Saved");
|
|
||||||
top.status3->value("");
|
top.status3->value("");
|
||||||
modified = false;
|
modified = false;
|
||||||
break;
|
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) {
|
void toggle_word_wrap(Fl_Widget *w, void *data) {
|
||||||
if (word_wrap) {
|
if (word_wrap) {
|
||||||
top.editor->wrap_mode(Fl_Text_Editor::WRAP_NONE, 80);
|
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,
|
{ " &Upper case", FL_ALT + 'u', do_upper_case, 0,
|
||||||
FL_MENU_DIVIDER },
|
FL_MENU_DIVIDER },
|
||||||
{ " &Prefix lines... ", FL_ALT + 'p', do_prefix_lines },
|
{ " &Prefix lines... ", FL_ALT + 'p', do_prefix_lines },
|
||||||
|
{ " &Number lines ", FL_ALT + 'n', do_number_lines },
|
||||||
{ 0 },
|
{ 0 },
|
||||||
{ "&View", 0, 0, 0, FL_SUBMENU },
|
{ "&View", 0, 0, 0, FL_SUBMENU },
|
||||||
{ " &Word wrap", 0, toggle_word_wrap, 0,
|
{ " &Word wrap", 0, toggle_word_wrap, 0,
|
||||||
|
|
Loading…
Reference in New Issue