Merge branch 'master' into elm_code

Conflicts:
	elm_code/src/lib/elm_code_diff_widget.c
This commit is contained in:
Andy Williams 2015-02-28 15:31:57 +00:00
commit 7ed4aa9695
9 changed files with 79 additions and 25 deletions

View File

@ -69,9 +69,9 @@ _elm_code_test_welcome_setup(Evas_Object *parent)
Elm_Code_Widget *widget;
code = elm_code_create();
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent);
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(code));
eo_do(widget,
elm_code_widget_code_set(code),
elm_code_widget_font_size_set(12),
eo_event_callback_add(&ELM_CODE_EVENT_LINE_LOAD_DONE, _elm_code_test_line_done_cb, NULL);
eo_event_callback_add(ELM_CODE_WIDGET_EVENT_LINE_CLICKED, _elm_code_test_line_clicked_cb, code));
@ -95,9 +95,9 @@ _elm_code_test_editor_setup(Evas_Object *parent)
Elm_Code_Widget *widget;
code = elm_code_create();
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent);
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(code));
eo_do(widget,
elm_code_widget_code_set(code),
elm_code_widget_font_size_set(14),
elm_code_widget_editable_set(EINA_TRUE),
elm_code_widget_show_whitespace_set(EINA_TRUE),
@ -127,9 +127,8 @@ _elm_code_test_diff_inline_setup(Evas_Object *parent)
code = elm_code_create();
elm_code_file_open(code, path);
diff = eo_add(ELM_CODE_WIDGET_CLASS, parent);
eo_do(diff,
elm_code_widget_code_set(code));
diff = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(code));
evas_object_size_hint_weight_set(diff, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(diff, EVAS_HINT_FILL, EVAS_HINT_FILL);

View File

@ -94,10 +94,9 @@ elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code)
// left side of diff
wcode1 = elm_code_create();
widget_left = eo_add(ELM_CODE_WIDGET_CLASS, parent);
eo_do(widget_left,
elm_code_widget_code_set(wcode1));
elm_code_parser_standard_add(wcode1, ELM_CODE_PARSER_STANDARD_DIFF);
widget_left = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(wcode1));
evas_object_size_hint_weight_set(widget_left, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(widget_left, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -107,10 +106,9 @@ elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code)
// right side of diff
wcode2 = elm_code_create();
widget_right = eo_add(ELM_CODE_WIDGET_CLASS, parent);
eo_do(widget_right,
elm_code_widget_code_set(wcode2));
elm_code_parser_standard_add(wcode2, ELM_CODE_PARSER_STANDARD_DIFF);
widget_right = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(wcode2));
evas_object_size_hint_weight_set(widget_right, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(widget_right, EVAS_HINT_FILL, EVAS_HINT_FILL);

View File

@ -32,9 +32,15 @@ Eina_Unicode status_icons[] = {
0
};
#define EO_CONSTRUCTOR_CHECK_RETURN(obj) \
if (eo_do(obj, eo_finalized_get())) \
{ \
ERR("This function is only allowed during construction."); \
return; \
}
EOLIAN static void
_elm_code_widget_eo_base_constructor(Eo *obj, Elm_Code_Widget_Data *pd EINA_UNUSED)
_elm_code_widget_eo_base_constructor(Eo *obj, Elm_Code_Widget_Data *pd)
{
eo_do_super(obj, ELM_CODE_WIDGET_CLASS, eo_constructor());
@ -42,6 +48,18 @@ _elm_code_widget_eo_base_constructor(Eo *obj, Elm_Code_Widget_Data *pd EINA_UNUS
pd->cursor_col = 1;
}
EOLIAN static Eo *
_elm_code_widget_eo_base_finalize(Eo *obj, Elm_Code_Widget_Data *pd)
{
eo_do_super(obj, ELM_CODE_WIDGET_CLASS, eo_finalize());
if (pd->code)
return obj;
ERR("Elm_Code_Widget cannot finalize without calling elm_code_widget_code_set.");
return NULL;
}
EOLIAN static void
_elm_code_widget_class_constructor(Eo_Class *klass EINA_UNUSED)
{
@ -723,8 +741,10 @@ _elm_code_widget_font_size_get(Eo *obj EINA_UNUSED, Elm_Code_Widget_Data *pd)
}
EOLIAN static void
_elm_code_widget_code_set(Eo *obj, Elm_Code_Widget_Data *pd EINA_UNUSED, Elm_Code *code)
_elm_code_widget_code_set(Eo *obj, Elm_Code_Widget_Data *pd, Elm_Code *code)
{
EO_CONSTRUCTOR_CHECK_RETURN(obj);
pd->code = code;
code->widgets = eina_list_append(code->widgets, obj);

View File

@ -5,7 +5,9 @@ class Elm_Code_Widget (Elm_Layout, Elm_Interface_Atspi_Text)
code {
set {
/*@
Set the underlying code object that this widget renders
Set the underlying code object that this widget renders.
This can only be set during construction, once the widget is created the
backing code object cannot be changed.
@ingroup Data */
}
@ -169,6 +171,7 @@ class Elm_Code_Widget (Elm_Layout, Elm_Interface_Atspi_Text)
implements {
class.constructor;
Eo.Base.constructor;
Eo.Base.finalize;
Evas.Object_Smart.add;
Elm_Widget.focus_next_manager_is;
Elm_Widget.focus_direction_manager_is;

View File

@ -6,7 +6,7 @@
START_TEST (elm_code_create_test)
{
char *path = "elm_code/tests/testfile.txt";
char *path = "elm_code/src/tests/testfile.txt";
Elm_Code *code;
code = elm_code_create();

View File

@ -41,8 +41,42 @@ START_TEST (elm_code_widget_token_render_simple_test)
}
END_TEST
START_TEST (elm_code_widget_construct)
{
Elm_Code *code;
Elm_Code_Widget *widget, *win;
elm_init(1, NULL);
code = elm_code_create();
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC);
widget = eo_add(ELM_CODE_WIDGET_CLASS, win,
elm_code_widget_code_set(code));
ck_assert(!!widget);
elm_code_free(code);
elm_shutdown();
}
END_TEST
START_TEST (elm_code_widget_construct_nocode)
{
Elm_Code_Widget *widget, *win;
elm_init(1, NULL);
win = elm_win_add(NULL, "entry", ELM_WIN_BASIC);
widget = eo_add(ELM_CODE_WIDGET_CLASS, win);
ck_assert(!widget);
elm_shutdown();
}
END_TEST
void elm_code_test_widget(TCase *tc)
{
tcase_add_test(tc, elm_code_widget_token_render_simple_test);
tcase_add_test(tc, elm_code_widget_construct);
tcase_add_test(tc, elm_code_widget_construct_nocode);
}

View File

@ -316,9 +316,9 @@ void edi_consolepanel_add(Evas_Object *parent)
code = elm_code_create();
_edi_console_code = code;
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent);
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(code));
eo_do(widget,
elm_code_widget_code_set(code),
elm_code_widget_font_size_set(_edi_cfg->font.size),
elm_code_widget_gravity_set(0.0, 1.0),
eo_event_callback_add(&ELM_CODE_EVENT_LINE_LOAD_DONE, _edi_consolepanel_line_cb, NULL),
@ -342,9 +342,9 @@ void edi_testpanel_add(Evas_Object *parent)
code = elm_code_create();
_edi_test_code = code;
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent);
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(code));
eo_do(widget,
elm_code_widget_code_set(code),
elm_code_widget_font_size_set(_edi_cfg->font.size),
elm_code_widget_gravity_set(0.0, 1.0),
eo_event_callback_add(&ELM_CODE_EVENT_LINE_LOAD_DONE, _edi_testpanel_line_cb, NULL),

View File

@ -49,9 +49,9 @@ _edi_content_provider_diff_add(Evas_Object *parent, Edi_Mainview_Item *item)
static Edi_Content_Provider _edi_content_provider_registry[] =
{
{"text", "txt", EINA_TRUE, EINA_TRUE, edi_editor_add},
{"text", "text-x-generic", EINA_TRUE, EINA_TRUE, edi_editor_add},
{"code", "text-x-csrc", EINA_TRUE, EINA_TRUE, edi_editor_add},
{"image", "image", EINA_FALSE, EINA_FALSE, _edi_content_provider_image_add},
{"image", "image-x-generic", EINA_FALSE, EINA_FALSE, _edi_content_provider_image_add},
{"diff", "text-x-source", EINA_TRUE, EINA_FALSE, _edi_content_provider_diff_add},
{NULL, NULL, EINA_FALSE, EINA_FALSE, NULL}

View File

@ -52,9 +52,9 @@ void edi_logpanel_add(Evas_Object *parent)
Elm_Code *code;
code = elm_code_create();
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent);
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
elm_code_widget_code_set(code));
eo_do(widget,
elm_code_widget_code_set(code),
elm_code_widget_font_size_set(_edi_cfg->font.size),
elm_code_widget_gravity_set(0.0, 1.0),
eo_event_callback_add(&ELM_CODE_EVENT_LINE_LOAD_DONE, _edi_logpanel_line_cb, NULL));