Thursday, October 8, 2009

Создание простейшего дерева элементов в gtkhtml

Создание простейшего дерева элементов в gtkhtml:
HTMLObject *o,*flow,* table, *cell,*flowcell,*flowtable;
// отступ clue по отношению к левой стороне экрана, используется при отображении коментариям к записям
GByteArray *levels;
//создание текста
o = text_new (e, "АААААА", current_font_style (e), current_color (e));
html_text_set_font_face (HTML_TEXT (o), current_font_face (e));     
levels = g_byte_array_new ();
//создание clue
flow = html_clueflow_new (current_clueflow_style (e), levels, HTML_LIST_TYPE_BLOCKQUOTE, 0, HTML_CLEAR_NONE);
//создание таблицы
table = html_table_new (0, 0, 3, 2, 1);
//Открыть новую строку
html_table_start_row (HTML_TABLE(table));
//создать новую ячейку
cell = html_table_cell_new (0, 0, 1);
levels = g_byte_array_new ();
//создать clue для ячейки в который засунуть текст
flowcell = html_clueflow_new (current_clueflow_style (e), levels, HTML_LIST_TYPE_BLOCKQUOTE, 0, HTML_CLEAR_NONE);
html_clue_append (HTML_CLUE (flowcell), o);
//привязать к ячейке clue
html_clue_append (HTML_CLUE (cell), flowcell);
//привязать ячейку к таблице
html_table_add_cell (HTML_TABLE(table), HTML_TABLE_CELL (cell));
//закрыть строку
html_table_end_row (HTML_TABLE(table));
levels = g_byte_array_new ();
flowtable = html_clueflow_new (current_clueflow_style (e), levels, HTML_LIST_TYPE_BLOCKQUOTE, 0, HTML_CLEAR_NONE);     
//упаковать все друг в друга
html_clue_append (HTML_CLUE (flowtable), table);     
html_clue_append (HTML_CLUE (flow), flowtable);
html_clue_append (HTML_CLUE (e->parser_clue), flow); 
Внутри clue парсера должен обязательно находится еще один clue в внутри которого расположены все остальные элементы. В clue добавляется все иерархия элементов.

No comments: