Enlightenment CVS committal Author : moom Project : e17 Module : libs/etk
Dir : e17/libs/etk/src/lib Modified Files: etk_button.c etk_colorpicker.c etk_combobox.c etk_dialog.c etk_iconbox.c etk_label.c etk_tree_model.c etk_widget.c etk_widget.h Log Message: * [Theme] Rename label's part "etk.text.textblock" to "etk.text.label" and tree's part "etk.text.text" to "etk.text.label" * [Theme] Each widget now have its own label's theme-group. You can thus use different label styles for different widgets * [Widget] Theme-children can now emits automatically the same theme-signals as their theme-parents... this is used for the labels to make them reactive to signals like "etk,state,pressed", "etk,state,released", ... * All existing themes are broken * =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_button.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- etk_button.c 3 Jan 2007 23:35:25 -0000 1.32 +++ etk_button.c 18 Feb 2007 16:53:24 -0000 1.33 @@ -417,10 +417,11 @@ button->stock_size = ETK_STOCK_SMALL; button->label = etk_label_new(NULL); - etk_container_add(ETK_CONTAINER(button), button->label); etk_widget_internal_set(button->label, ETK_TRUE); - etk_label_alignment_set(ETK_LABEL(button->label), 0.5, 0.5); + etk_widget_theme_parent_set(button->label, ETK_WIDGET(button)); etk_widget_pass_mouse_events_set(button->label, ETK_TRUE); + etk_label_alignment_set(ETK_LABEL(button->label), 0.5, 0.5); + etk_container_add(ETK_CONTAINER(button), button->label); button->pressed = _etk_button_pressed_handler; button->released = _etk_button_released_handler; =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_colorpicker.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- etk_colorpicker.c 14 Feb 2007 02:31:02 -0000 1.24 +++ etk_colorpicker.c 18 Feb 2007 16:53:24 -0000 1.25 @@ -346,18 +346,18 @@ /* We create the widgets */ cp->main_table = etk_table_new(2, 2, ETK_FALSE); - etk_widget_parent_set(cp->main_table, cp_widget); etk_widget_internal_set(cp->main_table, ETK_TRUE); + etk_widget_parent_set(cp->main_table, cp_widget); etk_widget_show(cp->main_table); cp->picker_widget = etk_widget_new(ETK_WIDGET_TYPE, "theme_group", "picker", "theme_parent", cp, NULL); - etk_table_attach_default(ETK_TABLE(cp->main_table), cp->picker_widget, 0, 0, 0, 0); etk_widget_internal_set(cp->picker_widget, ETK_TRUE); + etk_table_attach_default(ETK_TABLE(cp->main_table), cp->picker_widget, 0, 0, 0, 0); etk_widget_show(cp->picker_widget); cp->component_table = etk_table_new(3, 7, ETK_FALSE); - etk_table_attach_default(ETK_TABLE(cp->main_table), cp->component_table, 1, 1, 0, 0); etk_widget_internal_set(cp->component_table, ETK_TRUE); + etk_table_attach_default(ETK_TABLE(cp->main_table), cp->component_table, 1, 1, 0, 0); etk_widget_show(cp->component_table); /* Radios, sliders and labels for each component */ @@ -373,20 +373,20 @@ etk_widget_show(cp->radios[i]); cp->sliders[i] = etk_hslider_new(0.0, _etk_colorpicker_max_values[i], 0.0, steps[i], steps[i] * 5); - etk_table_attach(ETK_TABLE(cp->component_table), cp->sliders[i], 1, 1, i, i, - 0, 0, ETK_TABLE_HFILL | ETK_TABLE_EXPAND); etk_widget_theme_parent_set(cp->sliders[i], ETK_WIDGET(cp)); etk_widget_internal_set(cp->sliders[i], ETK_TRUE); + etk_table_attach(ETK_TABLE(cp->component_table), cp->sliders[i], 1, 1, i, i, + 0, 0, ETK_TABLE_HFILL | ETK_TABLE_EXPAND); etk_widget_show(cp->sliders[i]); cp->sliders_image[i] = NULL; cp->value_labels[i] = etk_label_new("0"); - etk_table_attach(ETK_TABLE(cp->component_table), cp->value_labels[i], 2, 2, i, i, - 0, 0, ETK_TABLE_HFILL | ETK_TABLE_VEXPAND); etk_widget_internal_set(cp->value_labels[i], ETK_TRUE); /* TODO: this sucks.. the width shouldn't be hardcoded.. */ etk_widget_size_request_set(cp->value_labels[i], 28, -1); + etk_table_attach(ETK_TABLE(cp->component_table), cp->value_labels[i], 2, 2, i, i, + 0, 0, ETK_TABLE_HFILL | ETK_TABLE_VEXPAND); etk_widget_show(cp->value_labels[i]); etk_signal_connect("toggled", ETK_OBJECT(cp->radios[i]), @@ -402,21 +402,21 @@ /* Alpha slider */ { cp->alpha_name_label = etk_label_new(_("Alpha")); + etk_widget_internal_set(cp->alpha_name_label, ETK_TRUE); etk_table_attach(ETK_TABLE(cp->component_table), cp->alpha_name_label, 0, 0, 6, 6, 0, 0, ETK_TABLE_HFILL | ETK_TABLE_VEXPAND); - etk_widget_internal_set(cp->alpha_name_label, ETK_TRUE); cp->alpha_slider = etk_hslider_new(0.0, 255.0, 255.0, 10, 5.0); + etk_widget_internal_set(cp->alpha_slider, ETK_TRUE); etk_table_attach(ETK_TABLE(cp->component_table), cp->alpha_slider, 1, 1, 6, 6, 0, 0, ETK_TABLE_HFILL | ETK_TABLE_EXPAND); - etk_widget_internal_set(cp->alpha_slider, ETK_TRUE); cp->alpha_value_label = etk_label_new("255"); - etk_table_attach(ETK_TABLE(cp->component_table), cp->alpha_value_label, 2, 2, 6, 6, - 0, 0, ETK_TABLE_HFILL | ETK_TABLE_VEXPAND); etk_widget_internal_set(cp->alpha_value_label, ETK_TRUE); /* TODO: this sucks.. the width shouldn't be hardcoded.. */ etk_widget_size_request_set(cp->alpha_value_label, 28, -1); + etk_table_attach(ETK_TABLE(cp->component_table), cp->alpha_value_label, 2, 2, 6, 6, + 0, 0, ETK_TABLE_HFILL | ETK_TABLE_VEXPAND); etk_signal_connect("value_changed", ETK_OBJECT(cp->alpha_slider), ETK_CALLBACK(_etk_colorpicker_alpha_slider_value_changed_cb), cp); @@ -425,23 +425,23 @@ /* We create the widgets for the color preview */ cp->color_table = etk_table_new(2, 1, ETK_FALSE); etk_widget_padding_set(cp->color_table, 3, 3, 3, 3); + etk_widget_internal_set(cp->color_table, ETK_TRUE); etk_table_attach(ETK_TABLE(cp->main_table), cp->color_table, 0, 0, 1, 1, 0, 0, ETK_TABLE_FILL | ETK_TABLE_HEXPAND); - etk_widget_internal_set(cp->color_table, ETK_TRUE); etk_widget_show(cp->color_table); /* Current color preview */ cp->current_color_label = etk_label_new(_("Current")); + etk_widget_internal_set(cp->current_color_label, ETK_TRUE); etk_table_attach(ETK_TABLE(cp->color_table), cp->current_color_label, 0, 0, 0, 0, 0, 0, ETK_TABLE_HFILL); - etk_widget_internal_set(cp->current_color_label, ETK_TRUE); etk_widget_show(cp->current_color_label); cp->current_color_widget = etk_widget_new(ETK_WIDGET_TYPE, "theme_group", "color_preview", NULL); - etk_table_attach(ETK_TABLE(cp->color_table), cp->current_color_widget, 1, 1, 0, 0, - 0, 0, ETK_TABLE_HFILL | ETK_TABLE_HEXPAND); etk_widget_theme_parent_set(cp->current_color_widget, ETK_WIDGET(cp)); etk_widget_internal_set(cp->current_color_widget, ETK_TRUE); + etk_table_attach(ETK_TABLE(cp->color_table), cp->current_color_widget, 1, 1, 0, 0, + 0, 0, ETK_TABLE_HFILL | ETK_TABLE_HEXPAND); etk_widget_show(cp->current_color_widget); =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_combobox.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -3 -r1.35 -r1.36 --- etk_combobox.c 30 Dec 2006 22:11:49 -0000 1.35 +++ etk_combobox.c 18 Feb 2007 16:53:24 -0000 1.36 @@ -246,6 +246,7 @@ { case ETK_COMBOBOX_LABEL: combobox->active_item_children[j] = etk_label_new(NULL); + etk_widget_theme_parent_set(combobox->active_item_children[j], combobox->button); break; case ETK_COMBOBOX_IMAGE: combobox->active_item_children[j] = etk_image_new(); =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_dialog.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- etk_dialog.c 17 Feb 2007 18:28:19 -0000 1.15 +++ etk_dialog.c 18 Feb 2007 16:53:24 -0000 1.16 @@ -281,26 +281,28 @@ etk_widget_show(dialog->dialog_vbox); dialog->main_area_vbox = etk_vbox_new(ETK_FALSE, 0); - etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->main_area_vbox, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); etk_widget_internal_set(dialog->main_area_vbox, ETK_TRUE); + etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->main_area_vbox, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); etk_widget_show(dialog->main_area_vbox); dialog->separator = etk_hseparator_new(); - etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->separator, ETK_BOX_START, ETK_BOX_FILL, 6); etk_widget_theme_parent_set(dialog->separator, ETK_WIDGET(dialog)); etk_widget_internal_set(dialog->separator, ETK_TRUE); + etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->separator, ETK_BOX_START, ETK_BOX_FILL, 6); etk_widget_show(dialog->separator); dialog->action_area_alignment = etk_alignment_new(0.5, 0.5, 0.0, 0.0); - etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->action_area_alignment, ETK_BOX_END, ETK_BOX_FILL, 0); etk_widget_internal_set(dialog->action_area_alignment, ETK_TRUE); + etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->action_area_alignment, ETK_BOX_END, ETK_BOX_FILL, 0); etk_widget_show(dialog->action_area_alignment); dialog->action_area_hbox = etk_hbox_new(ETK_FALSE, 6); - etk_container_add(ETK_CONTAINER(dialog->action_area_alignment), dialog->action_area_hbox); etk_widget_internal_set(dialog->action_area_hbox, ETK_TRUE); + etk_container_add(ETK_CONTAINER(dialog->action_area_alignment), dialog->action_area_hbox); etk_widget_show(dialog->action_area_hbox); + etk_widget_lower(dialog->separator); + dialog->align = 0.5; dialog->has_separator = ETK_TRUE; } @@ -319,8 +321,8 @@ etk_dialog_has_separator_set(dialog, etk_property_value_bool_get(value)); break; case ETK_DIALOG_ACTION_AREA_ALIGN_PROPERTY: - etk_dialog_action_area_alignment_set(dialog, etk_property_value_float_get(value)); - break; + etk_dialog_action_area_alignment_set(dialog, etk_property_value_float_get(value)); + break; default: break; } @@ -340,8 +342,8 @@ etk_property_value_bool_set(value, etk_dialog_has_separator_get(dialog)); break; case ETK_DIALOG_ACTION_AREA_ALIGN_PROPERTY: - etk_property_value_float_set(value, dialog->align); - break; + etk_property_value_float_set(value, dialog->align); + break; default: break; } =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_iconbox.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- etk_iconbox.c 5 Jan 2007 15:56:04 -0000 1.19 +++ etk_iconbox.c 18 Feb 2007 16:53:24 -0000 1.20 @@ -1312,8 +1312,8 @@ icon_object->use_edje = ETK_FALSE; icon_object->label = etk_label_new(NULL); - etk_widget_parent_set(icon_object->label, ETK_WIDGET(grid)); etk_widget_theme_parent_set(icon_object->label, ETK_WIDGET(grid->iconbox)); + etk_widget_parent_set(icon_object->label, ETK_WIDGET(grid)); etk_widget_internal_set(icon_object->label, ETK_TRUE); etk_widget_repeat_mouse_events_set(icon_object->label, ETK_TRUE); etk_label_alignment_set(ETK_LABEL(icon_object->label), 0.0, 0.0); =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_label.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- etk_label.c 17 Feb 2007 18:39:18 -0000 1.27 +++ etk_label.c 18 Feb 2007 16:53:24 -0000 1.28 @@ -88,9 +88,9 @@ } if (!label->text) - etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.textblock", ""); + etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.label", ""); else - etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.textblock", label->text); + etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.label", label->text); etk_widget_size_recalc_queue(ETK_WIDGET(label)); } @@ -178,6 +178,8 @@ widget->size_request = _etk_label_size_request; widget->size_allocate = _etk_label_size_allocate; + /* This allows the label to receive the same theme-signals as its theme-parent */ + widget->emit_theme_parent_signals = ETK_TRUE; etk_signal_connect("realize", ETK_OBJECT(label), ETK_CALLBACK(_etk_label_realize_cb), NULL); } @@ -285,9 +287,9 @@ return; if (!label->text) - etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.textblock", ""); + etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.label", ""); else - etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.textblock", label->text); + etk_widget_theme_part_text_set(ETK_WIDGET(label), "etk.text.label", label->text); etk_widget_size_recalc_queue(ETK_WIDGET(label)); } @@ -309,13 +311,15 @@ * - <b>"<left>Text</left>":</b> Align left * - <b>"<right>Text</right>":</b> Align right * - <b>"<center>Text</center>":</b> Align center - * - <b>"<h1>Text</h1>":</b> Large text * - <b>"<b>Text</b>":</b> Bold * - <b>"<b>Text</b>":</b> Italic * - <b>"<bi>Text</bi>":</b> Bold-Italic * - <b>"<color=#rrggbbaa>Text</>":</b> Set the color of the text * - <b>"<font_size=16>Text</>":</b> Set the size of the text + * - <b>"<title>Text</title>":</b> Style for titles + * - <b>"<subtitle>Text</subtitle>":</b> Style for subtitles * - <b>"<glow>Text</glow>":</b> Make the the text glow + * - <b>"<description>Text</description>":</b> Style for descriptions * - <b>"<br>":</b> End of line * - <b>"<tab>":</b> Add a tab @n @n * =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_tree_model.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- etk_tree_model.c 29 Jan 2007 02:26:51 -0000 1.15 +++ etk_tree_model.c 18 Feb 2007 16:53:24 -0000 1.16 @@ -359,7 +359,7 @@ if (!(text_data = cell_data) || !cell_objects[0]) return ETK_FALSE; - edje_object_part_text_set(cell_objects[0], "etk.text.text", *text_data); + edje_object_part_text_set(cell_objects[0], "etk.text.label", *text_data); evas_object_move(cell_objects[0], geometry.x, geometry.y + (geometry.h / 2)); evas_object_show(cell_objects[0]); @@ -416,7 +416,7 @@ return ETK_FALSE; snprintf(string, 255, "%d", *int_data); - edje_object_part_text_set(cell_objects[0], "etk.text.text", string); + edje_object_part_text_set(cell_objects[0], "etk.text.label", string); evas_object_move(cell_objects[0], geometry.x, geometry.y + (geometry.h / 2)); evas_object_show(cell_objects[0]); @@ -461,7 +461,7 @@ return ETK_FALSE; snprintf(string, 255, "%.2f", *double_data); - edje_object_part_text_set(cell_objects[0], "etk.text.text", string); + edje_object_part_text_set(cell_objects[0], "etk.text.label", string); evas_object_move(cell_objects[0], geometry.x, geometry.y + (geometry.h / 2)); evas_object_show(cell_objects[0]); @@ -877,7 +877,7 @@ edje_object_part_drag_value_set(cell_objects[0], "etk.dragable.filler", 0.0, 0.0); edje_object_part_drag_size_set(cell_objects[0], "etk.dragable.filler", pbar_data->fraction, 0.0); - edje_object_part_text_set(cell_objects[0], "etk.text.text", pbar_data->text ? pbar_data->text : ""); + edje_object_part_text_set(cell_objects[0], "etk.text.label", pbar_data->text ? pbar_data->text : ""); evas_object_data_set(cell_objects[0], "_Etk_Tree_Model_Progressbar::Row", row); edje_object_size_min_get(cell_objects[0], &w, &h); =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_widget.c,v retrieving revision 1.95 retrieving revision 1.96 diff -u -3 -r1.95 -r1.96 --- etk_widget.c 17 Feb 2007 18:39:18 -0000 1.95 +++ etk_widget.c 18 Feb 2007 16:53:24 -0000 1.96 @@ -1228,9 +1228,20 @@ */ void etk_widget_theme_signal_emit(Etk_Widget *widget, const char *signal_name, Etk_Bool size_recalc) { + Etk_Widget *tc; + Evas_List *l; + if (!widget || !widget->theme_object) return; + edje_object_signal_emit(widget->theme_object, signal_name, "etk"); + for (l = widget->theme_children; l; l = l->next) + { + tc = ETK_WIDGET(l->data); + if (tc->emit_theme_parent_signals) + etk_widget_theme_signal_emit(tc, signal_name, size_recalc); + } + if (size_recalc) { widget->need_theme_size_recalc = ETK_TRUE; @@ -2016,6 +2027,7 @@ widget->need_redraw = ETK_FALSE; widget->need_theme_size_recalc = ETK_FALSE; widget->swallowed = ETK_FALSE; + widget->emit_theme_parent_signals = ETK_FALSE; widget->accepts_dnd = ETK_FALSE; widget->dnd_internal = ETK_FALSE; widget->dnd_source = ETK_FALSE; =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_widget.h,v retrieving revision 1.43 retrieving revision 1.44 diff -u -3 -r1.43 -r1.44 --- etk_widget.h 27 Jan 2007 05:14:32 -0000 1.43 +++ etk_widget.h 18 Feb 2007 16:53:25 -0000 1.44 @@ -109,6 +109,7 @@ unsigned int need_size_recalc : 1; unsigned int need_redraw : 1; unsigned int need_theme_size_recalc : 1; + unsigned int emit_theme_parent_signals : 1; unsigned int accepts_dnd : 1; unsigned int dnd_source : 1; unsigned int dnd_dest : 1; ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs