elm_code widget: fire user change events
This does not yet have a "change" attached so does not support undo/redo yet
This commit is contained in:
parent
4aa3defb30
commit
8eb3978c1e
|
@ -761,7 +761,9 @@ _elm_code_widget_text_at_cursor_insert(Elm_Code_Widget *widget, const char *text
|
|||
|
||||
elm_code_line_text_insert(line, col, text, length);
|
||||
eo_do(widget,
|
||||
elm_code_widget_cursor_position_set(col + length, row));
|
||||
elm_code_widget_cursor_position_set(col + length, row),
|
||||
// TODO construct and pass a change object
|
||||
eo_event_callback_call(ELM_CODE_WIDGET_EVENT_CHANGED_USER, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -787,7 +789,9 @@ _elm_code_widget_newline(Elm_Code_Widget *widget)
|
|||
|
||||
free(content);
|
||||
eo_do(widget,
|
||||
elm_code_widget_cursor_position_set(1, row + 1));
|
||||
elm_code_widget_cursor_position_set(1, row + 1),
|
||||
// TODO construct and pass a change object
|
||||
eo_event_callback_call(ELM_CODE_WIDGET_EVENT_CHANGED_USER, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -831,6 +835,8 @@ _elm_code_widget_backspaceline(Elm_Code_Widget *widget, Eina_Bool nextline)
|
|||
if (!nextline)
|
||||
eo_do(widget,
|
||||
elm_code_widget_cursor_position_set(length1 + 1, row - 1));
|
||||
// TODO construct and pass a change object
|
||||
eo_do(widget, eo_event_callback_call(ELM_CODE_WIDGET_EVENT_CHANGED_USER, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -850,8 +856,6 @@ _elm_code_widget_backspace(Elm_Code_Widget *widget)
|
|||
return;
|
||||
|
||||
_elm_code_widget_backspaceline(widget, EINA_FALSE);
|
||||
line = elm_code_file_line_get(code->file, row - 1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -860,6 +864,9 @@ _elm_code_widget_backspace(Elm_Code_Widget *widget)
|
|||
elm_code_line_text_remove(line, col - 1, 1);
|
||||
eo_do(widget,
|
||||
elm_code_widget_cursor_position_set(col - 1, row));
|
||||
|
||||
// TODO construct and pass a change object
|
||||
eo_do(widget, eo_event_callback_call(ELM_CODE_WIDGET_EVENT_CHANGED_USER, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -884,7 +891,9 @@ _elm_code_widget_delete(Elm_Code_Widget *widget)
|
|||
|
||||
elm_code_line_text_remove(line, col, 1);
|
||||
eo_do(widget,
|
||||
elm_code_widget_cursor_position_set(col, row));
|
||||
elm_code_widget_cursor_position_set(col, row),
|
||||
// TODO construct and pass a change object
|
||||
eo_event_callback_call(ELM_CODE_WIDGET_EVENT_CHANGED_USER, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -180,6 +180,7 @@ class Elm_Code_Widget (Elm_Layout, Elm_Interface_Atspi_Text)
|
|||
events {
|
||||
line,clicked;
|
||||
cursor,changed;
|
||||
changed,user;
|
||||
selection,changed;
|
||||
selection,cleared;
|
||||
}
|
||||
|
|
|
@ -127,7 +127,8 @@ _changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
|||
{
|
||||
Elm_Entry_Change_Info *change;
|
||||
Edi_Editor *editor = data;
|
||||
|
||||
/*
|
||||
TODO move this code into elm_code for undo/redo
|
||||
change = calloc(1, sizeof(*change));
|
||||
memcpy(change, event_info, sizeof(*change));
|
||||
if (change->insert)
|
||||
|
@ -140,6 +141,7 @@ _changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
|||
}
|
||||
|
||||
editor->undo_stack = eina_list_prepend(editor->undo_stack, change);
|
||||
*/
|
||||
editor->modified = EINA_TRUE;
|
||||
|
||||
if (editor->save_timer)
|
||||
|
@ -641,8 +643,8 @@ edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item)
|
|||
editor->show_highlight = !strcmp(item->editortype, "code");
|
||||
evas_object_event_callback_add(widget, EVAS_CALLBACK_KEY_DOWN,
|
||||
_smart_cb_key_down, editor);
|
||||
evas_object_smart_callback_add(widget, "changed,user", _changed_cb, editor);
|
||||
/*
|
||||
evas_object_smart_callback_add(txt, "changed,user", _changed_cb, editor);
|
||||
evas_object_smart_callback_add(txt, "undo,request", _undo_cb, editor);
|
||||
*/
|
||||
evas_object_smart_callback_add(widget, "unfocused", _unfocused_cb, editor);
|
||||
|
|
Loading…
Reference in New Issue