code.c
来自「超强的嵌入式GUI系统」· C语言 代码 · 共 574 行 · 第 1/2 页
C
574 行
tmp->dontparse = 1; }}void code_generate_object_progressbar (s_xml_node_t *node){ s_xml_node_t *tmp; char *nid = s_xml_node_get_attr_value(node, "id"); char *pid = s_xml_node_get_attr_value(node->parent, "id"); char *wid = s_xml_node_get_attr_value(s_xml_node_get_parent(node, "window"), "id"); fprintf(g_source, "w_progressbar_init(%s, &%s, %s->object);\n", wid, nid, pid); while ((tmp = s_xml_node_get_path(node, "style")) != NULL) { code_generate_style(tmp, node, NULL); tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "boxstyle")) != NULL) { code_generate_style(tmp, node, "box"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "image")) != NULL) { code_generate_image(tmp, node, NULL); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "boximage")) != NULL) { code_generate_image(tmp, node, "box"); tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "changed")) != NULL) { fprintf(g_source, "w_progressbar_set_changed(%s->object, %s);\n", nid, tmp->value); tmp->dontparse = 1; }}void code_generate_object_scrollbuffer (s_xml_node_t *node){ s_xml_node_t *tmp; char *nid = s_xml_node_get_attr_value(node, "id"); char *pid = s_xml_node_get_attr_value(node->parent, "id"); char *wid = s_xml_node_get_attr_value(s_xml_node_get_parent(node, "window"), "id"); fprintf(g_source, "w_scrollbuffer_init(%s, &%s, %s->object);\n", wid, nid, pid); while ((tmp = s_xml_node_get_path(node, "object")) != NULL) { code_generate(tmp, g_source, g_name); tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "child")) != NULL) { fprintf(g_source, "w_scrollbuffer_set_child(%s->object, %s->object);\n", nid, tmp->value); tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "slide")) != NULL) { fprintf(g_source, "w_scrollbuffer_set_slide(%s->object, %s);\n", nid, tmp->value); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "border")) != NULL) { fprintf(g_source, "w_scrollbuffer_set_border(%s->object, %s);\n", nid, tmp->value); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "style")) != NULL) { code_generate_style(tmp, node, NULL); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "image")) != NULL) { code_generate_image(tmp, node, NULL); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "boxstyle")) != NULL) { code_generate_style(tmp, node, "box"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "boximage")) != NULL) { code_generate_image(tmp, node, "box"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "addstyle")) != NULL) { code_generate_style(tmp, node, "add"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "addimage")) != NULL) { code_generate_image(tmp, node, "add"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "substyle")) != NULL) { code_generate_style(tmp, node, "sub"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "subimage")) != NULL) { code_generate_image(tmp, node, "sub"); tmp->dontparse = 1; }}void code_generate_object_listbox (s_xml_node_t *node){ s_xml_node_t *tmp; s_xml_node_t *tnm; char *nid = s_xml_node_get_attr_value(node, "id"); char *pid = s_xml_node_get_attr_value(node->parent, "id"); char *wid = s_xml_node_get_attr_value(s_xml_node_get_parent(node, "window"), "id"); fprintf(g_source, "w_listbox_init(%s, &%s, %s->object);\n", wid, nid, pid); while ((tmp = s_xml_node_get_path(node, "style")) != NULL) { code_generate_style(tmp, node, NULL); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "changed")) != NULL) { fprintf(g_source, "%s->changed = %s;\n", nid, tmp->value); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "itemheight")) != NULL) { fprintf(g_source, "w_listbox_set_item_height(%s->object, %s);\n", nid, tmp->value); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "itemimage")) != NULL) { code_generate_image(tmp, node, "item"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "item")) != NULL) { char *tid = s_xml_node_get_attr_value(tmp, "id"); fprintf(g_source, "w_listbox_item_init(%s->object, &%s);\n", nid, tid); while ((tnm = s_xml_node_get_path(tmp, "name")) != NULL) { fprintf(g_source, "w_listbox_item_name_set(%s->object, %s, %s);\n", nid, tid, tnm->value); tnm->dontparse = 1; } fprintf(g_source, "w_listbox_item_add(%s->object, %s);\n", nid, tid); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "scrollbuffer")) != NULL) { fprintf(g_source, "w_listbox_scrollbuffer_set(%s->object, %s->object);\n", nid, tmp->value); tmp->dontparse = 1; }}void code_generate_object_clistbox (s_xml_node_t *node){ s_xml_node_t *tmp; s_xml_node_t *tnm; char *nid = s_xml_node_get_attr_value(node, "id"); char *pid = s_xml_node_get_attr_value(node->parent, "id"); char *wid = s_xml_node_get_attr_value(s_xml_node_get_parent(node, "window"), "id"); fprintf(g_source, "w_clistbox_init(%s, &%s, %s->object);\n", wid, nid, pid); while ((tmp = s_xml_node_get_path(node, "style")) != NULL) { code_generate_style(tmp, node, NULL); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "changed")) != NULL) { fprintf(g_source, "%s->changed = %s;\n", nid, tmp->value); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "itemheight")) != NULL) { fprintf(g_source, "w_clistbox_set_item_height(%s->object, %s);\n", nid, tmp->value); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "itemimage")) != NULL) { code_generate_image(tmp, node, "item"); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "item")) != NULL) { char *tid = s_xml_node_get_attr_value(tmp, "id"); fprintf(g_source, "w_clistbox_item_init(%s->object, &%s);\n", nid, tid); while ((tnm = s_xml_node_get_path(tmp, "name")) != NULL) { fprintf(g_source, "w_clistbox_item_name_set(%s->object, %s, %s);\n", nid, tid, tnm->value); tnm->dontparse = 1; } fprintf(g_source, "w_clistbox_item_add(%s->object, %s);\n", nid, tid); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "scrollbuffer")) != NULL) { fprintf(g_source, "w_clistbox_scrollbuffer_set(%s->object, %s->object);\n", nid, tmp->value); tmp->dontparse = 1; }}void code_generate_effect (s_xml_node_t *node){ s_xml_node_t *tmp; char *effect = s_xml_node_get_path_value(node, "effect"); char *pid = s_xml_node_get_attr_value(node->parent, "id"); fprintf(g_source, "%s->object->effect->effect = %s;\n", pid, (effect) ? effect : "0"); if ((tmp = s_xml_node_get_path(node, "effect")) != NULL) { tmp->dontparse = 1; }}void code_generate_show (s_xml_node_t *node){ if (strcmp(node->parent->name, "window") == 0) { char *pid = s_xml_node_get_attr_value(s_xml_node_get_parent(node, "window"), "id"); fprintf(g_source, "w_object_show(%s->object);\n", pid); fprintf(g_source, "s_window_show(%s->window);\n", pid); fprintf(g_source, "s_window_main(%s->window);\n", pid); } else if (strcmp(node->parent->name, "object") == 0) { char *oid = s_xml_node_get_attr_value(s_xml_node_get_parent(node, "object"), "id"); fprintf(g_source, "w_object_show(%s->object);\n", oid); }}void code_generate_draw (s_xml_node_t *node){ char *pid = s_xml_node_get_attr_value(node->parent, "id"); fprintf(g_source, "%s->object->draw = %s;\n", pid, node->value);}void code_generate_event (s_xml_node_t *node){ char *pid = s_xml_node_get_attr_value(node->parent, "id"); fprintf(g_source, "%s->object->event = %s;\n", pid, node->value);}void code_generate_onload (s_xml_node_t *node){ char *pid = s_xml_node_get_attr_value(node->parent, "id"); fprintf(g_source, "%s->object->onload = %s;\n", pid, node->value);}void code_generate_unload (s_xml_node_t *node){ char *pid = s_xml_node_get_attr_value(node->parent, "id"); fprintf(g_source, "%s->object->unload = %s;\n", pid, node->value);}void code_generate_object (s_xml_node_t *node){ s_xml_node_t *tmp; char *type = s_xml_node_get_attr_value(node, "type"); if (strcmp(type, "frame") == 0) { code_generate_object_frame(node); } else if (strcmp(type, "button") == 0) { code_generate_object_button(node); } else if (strcmp(type, "textbox") == 0) { code_generate_object_textbox(node); } else if (strcmp(type, "checkbox") == 0) { code_generate_object_checkbox(node); } else if (strcmp(type, "editbox") == 0) { code_generate_object_editbox(node); } else if (strcmp(type, "progressbar") == 0) { code_generate_object_progressbar(node); } else if (strcmp(type, "scrollbuffer") == 0) { code_generate_object_scrollbuffer(node); } else if (strcmp(type, "listbox") == 0) { code_generate_object_listbox(node); } else if (strcmp(type, "clistbox") == 0) { code_generate_object_clistbox(node); } while ((tmp = s_xml_node_get_path(node, "effect")) != NULL) { code_generate_effect(tmp); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "draw")) != NULL) { code_generate_draw(tmp); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "event")) != NULL) { code_generate_event(tmp); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "onload")) != NULL) { code_generate_onload(tmp); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "unload")) != NULL) { code_generate_unload(tmp); tmp->dontparse = 1; }}void code_generate (s_xml_node_t *node, FILE *source, char *name){ int p; s_xml_node_t *tmp; if (node->dontparse != 0) { return; } g_name = name; g_source = source; if (strcmp(node->name, "window") == 0) { code_generate_window(node); } else if (strcmp(node->name, "object") == 0) { code_generate_object(node); } else if (strcmp(node->name, "move") == 0) { code_generate_move(node); } else if (strcmp(node->name, "show") == 0) { code_generate_show(node); } p = 0; while (!s_list_eol(node->nodes, p)) { tmp = (s_xml_node_t *) s_list_get(node->nodes, p); code_generate(tmp, source, name); p++; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?