Beispiel #1
0
Error EditorHelp::_goto_desc(const String& p_class,bool p_update_history,int p_vscr) {

	//ERR_FAIL_COND(!doc->class_list.has(p_class));
	if (!doc->class_list.has(p_class))
		return ERR_DOES_NOT_EXIST;


	if (tree_item_map.has(p_class)) {
		select_locked = true;
		tree_item_map[p_class]->select(0);
		class_list->ensure_cursor_is_visible();
	}

	class_desc->show();
	//tabs->set_current_tab(PAGE_CLASS_DESC);
	edited_class->set_pressed(true);
	class_list_button->set_pressed(false);
	description_line=0;

	if (p_class==edited_class->get_text())
		return OK; //already there

	scroll_locked=true;

	if (p_update_history) {

		history.resize(history_pos);
		history_pos++;
		History h;
		h.c=p_class;
		h.scroll=0;
		history.push_back(h);
		_update_history_buttons();
		class_desc->get_v_scroll()->set_val(0);
	}

	class_desc->clear();
	method_line.clear();
	edited_class->set_text(p_class);
	//edited_class->show();


	DocData::ClassDoc &cd=doc->class_list[p_class];

	Color h_color;

	Ref<Font> doc_font = get_font("normal","Fonts");
	Ref<Font> doc_code_font = get_font("source","Fonts");
	Ref<Font> doc_title_font = get_font("large","Fonts");


	h_color=Color(1,1,1,1);

	class_desc->push_font(doc_title_font);
	class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
	class_desc->add_text("Class: ");
	class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
	class_desc->add_text(p_class);
	class_desc->pop();
	class_desc->pop();
	class_desc->pop();
	class_desc->add_newline();

	if (cd.inherits!="") {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Inherits: ");
		class_desc->pop();
		class_desc->pop();
		class_desc->push_font(doc_font);
		_add_type(cd.inherits);
		class_desc->pop();
		class_desc->add_newline();
		class_desc->add_newline();

	}

	if (cd.brief_description!="") {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Brief Description:");
		class_desc->pop();
		class_desc->pop();

		//class_desc->add_newline();
		class_desc->add_newline();
		_add_text(cd.brief_description);
		class_desc->add_newline();
		class_desc->add_newline();
	}

	bool method_descr=false;

	if (cd.methods.size()) {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Public Methods:");
		class_desc->pop();
		class_desc->pop();

		//class_desc->add_newline();
		class_desc->add_newline();

		class_desc->push_indent(1);

		for(int i=0;i<cd.methods.size();i++) {

			method_line[cd.methods[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);
			_add_type(cd.methods[i].return_type);
			class_desc->add_text(" ");
			if (cd.methods[i].description!="") {
				method_descr=true;
				class_desc->push_meta("@"+cd.methods[i].name);
			}
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(cd.methods[i].name);
			class_desc->pop();
			if (cd.methods[i].description!="")
				class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?"( ":"(");
			class_desc->pop();
			for(int j=0;j<cd.methods[i].arguments.size();j++) {
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
				if (j>0)
					class_desc->add_text(", ");
				_add_type(cd.methods[i].arguments[j].type);
				class_desc->add_text(" "+cd.methods[i].arguments[j].name);
				if (cd.methods[i].arguments[j].default_value!="") {

					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
					class_desc->add_text("=");
					class_desc->pop();
					class_desc->add_text(cd.methods[i].arguments[j].default_value);
				}

				class_desc->pop();
			}

			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?" )":")");
			class_desc->pop();
			if (cd.methods[i].qualifiers!="") {

				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
				class_desc->add_text(" "+cd.methods[i].qualifiers);
				class_desc->pop();

			}
			class_desc->pop();//monofont
			class_desc->add_newline();

		}

		class_desc->pop();
		class_desc->add_newline();

	}

	if (cd.properties.size()) {


		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Members:");
		class_desc->pop();
		class_desc->pop();
		class_desc->add_newline();

		class_desc->push_indent(1);

		//class_desc->add_newline();

		for(int i=0;i<cd.properties.size();i++) {

			property_line[cd.properties[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);
			_add_type(cd.properties[i].type);
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(" "+cd.properties[i].name);
			class_desc->pop();
			class_desc->pop();

			if (cd.properties[i].description!="") {
				class_desc->push_font(doc_font);
				class_desc->add_text("  ");
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				class_desc->add_text(cd.properties[i].description);
				class_desc->pop();
				class_desc->pop();

			}

			class_desc->add_newline();
		}

		class_desc->add_newline();
		class_desc->pop();


	}

	if (cd.theme_properties.size()) {


		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("GUI Theme Items:");
		class_desc->pop();
		class_desc->pop();
		class_desc->add_newline();

		class_desc->push_indent(1);

		//class_desc->add_newline();

		for(int i=0;i<cd.theme_properties.size();i++) {

			theme_property_line[cd.theme_properties[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);
			_add_type(cd.theme_properties[i].type);
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(" "+cd.theme_properties[i].name);
			class_desc->pop();
			class_desc->pop();

			if (cd.theme_properties[i].description!="") {
				class_desc->push_font(doc_font);
				class_desc->add_text("  ");
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				class_desc->add_text(cd.theme_properties[i].description);
				class_desc->pop();
				class_desc->pop();

			}

			class_desc->add_newline();
		}

		class_desc->add_newline();
		class_desc->pop();


	}
	if (cd.signals.size()) {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Signals:");
		class_desc->pop();
		class_desc->pop();

		class_desc->add_newline();
		//class_desc->add_newline();

		class_desc->push_indent(1);

		for(int i=0;i<cd.signals.size();i++) {

			signal_line[cd.signals[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);
			//_add_type("void");
			//class_desc->add_text(" ");
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(cd.signals[i].name);
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.signals[i].arguments.size()?"( ":"(");
			class_desc->pop();
			for(int j=0;j<cd.signals[i].arguments.size();j++) {
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
				if (j>0)
					class_desc->add_text(", ");
				_add_type(cd.signals[i].arguments[j].type);
				class_desc->add_text(" "+cd.signals[i].arguments[j].name);
				if (cd.signals[i].arguments[j].default_value!="") {

					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
					class_desc->add_text("=");
					class_desc->pop();
					class_desc->add_text(cd.signals[i].arguments[j].default_value);
				}

				class_desc->pop();
			}

			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.signals[i].arguments.size()?" )":")");
			class_desc->pop();
			if (cd.signals[i].description!="") {

				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				class_desc->add_text(" "+cd.signals[i].description);
				class_desc->pop();

			}
			class_desc->pop();//monofont
			class_desc->add_newline();

		}

		class_desc->pop();
		class_desc->add_newline();

	}

	if (cd.constants.size()) {


		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Constants:");
		class_desc->pop();
		class_desc->pop();
		class_desc->push_indent(1);

		class_desc->add_newline();
		//class_desc->add_newline();

		for(int i=0;i<cd.constants.size();i++) {

			constant_line[cd.constants[i].name]=class_desc->get_line_count()-2;
			class_desc->push_font(doc_code_font);
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
			class_desc->add_text(cd.constants[i].name);
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(" = ");
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
			class_desc->add_text(cd.constants[i].value);
			class_desc->pop();
			class_desc->pop();
			if (cd.constants[i].description!="") {
				class_desc->push_font(doc_font);
				class_desc->add_text("  ");
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				class_desc->add_text(cd.constants[i].description);
				class_desc->pop();
				class_desc->pop();
			}

			class_desc->add_newline();
		}

		class_desc->pop();
		class_desc->add_newline();


	}

	if (cd.description!="") {

		description_line=class_desc->get_line_count()-2;
		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Description:");
		class_desc->pop();
		class_desc->pop();

		class_desc->add_newline();
		class_desc->add_newline();
		_add_text(cd.description);
		class_desc->add_newline();
		class_desc->add_newline();
	}

	if (method_descr) {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text("Method Description:");
		class_desc->pop();
		class_desc->pop();

		class_desc->add_newline();
		class_desc->add_newline();


		for(int i=0;i<cd.methods.size();i++) {

			method_line[cd.methods[i].name]=class_desc->get_line_count()-2;

			class_desc->push_font(doc_code_font);
			_add_type(cd.methods[i].return_type);

			class_desc->add_text(" ");
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(cd.methods[i].name);
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?"( ":"(");
			class_desc->pop();
			for(int j=0;j<cd.methods[i].arguments.size();j++) {
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
				if (j>0)
					class_desc->add_text(", ");
				_add_type(cd.methods[i].arguments[j].type);
				class_desc->add_text(" "+cd.methods[i].arguments[j].name);
				if (cd.methods[i].arguments[j].default_value!="") {

					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
					class_desc->add_text("=");
					class_desc->pop();
					class_desc->add_text(cd.methods[i].arguments[j].default_value);
				}

				class_desc->pop();
			}

			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?" )":")");
			class_desc->pop();
			if (cd.methods[i].qualifiers!="") {

				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
				class_desc->add_text(" "+cd.methods[i].qualifiers);
				class_desc->pop();

			}

			class_desc->pop();

			class_desc->add_newline();
			class_desc->add_newline();
			_add_text(cd.methods[i].description);
			class_desc->add_newline();
			class_desc->add_newline();

		}





	}

	if (!p_update_history) {

		class_desc->get_v_scroll()->set_val(history[history_pos-1].scroll);
	}

	scroll_locked=false;

	return OK;
}
Beispiel #2
0
Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {

	//ERR_FAIL_COND(!doc->class_list.has(p_class));
	if (!doc->class_list.has(p_class))
		return ERR_DOES_NOT_EXIST;


	//if (tree_item_map.has(p_class)) {
		select_locked = true;
	//}

	class_desc->show();
	//tabs->set_current_tab(PAGE_CLASS_DESC);
	description_line=0;

	if (p_class==edited_class)
		return OK; //already there

	scroll_locked=true;

	class_desc->clear();
	method_line.clear();
	edited_class=p_class;
	//edited_class->show();


	DocData::ClassDoc cd=doc->class_list[p_class]; //make a copy, so we can sort without worrying

	Color h_color;

	Ref<Font> doc_font = get_font("doc","EditorFonts");
	Ref<Font> doc_title_font = get_font("doc_title","EditorFonts");
	Ref<Font> doc_code_font = get_font("doc_source","EditorFonts");


	h_color=Color(1,1,1,1);

	class_desc->push_font(doc_title_font);
	class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
	class_desc->add_text(TTR("Class:")+" ");
	class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
	_add_text(p_class);
	class_desc->pop();
	class_desc->pop();
	class_desc->pop();
	class_desc->add_newline();

	if (cd.inherits!="") {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Inherits:")+" ");
		class_desc->pop();
		class_desc->pop();

		String inherits = cd.inherits;

		class_desc->push_font(doc_font);

		while (inherits != "") {
			_add_type(inherits);

			inherits = doc->class_list[inherits].inherits;

			if (inherits != "") {
				class_desc->add_text(" , ");
			}
		}

		class_desc->pop();
		class_desc->add_newline();
	}

	if (ObjectTypeDB::type_exists(cd.name)) {

		bool found = false;
		bool prev = false;

		for (Map<String,DocData::ClassDoc>::Element *E=doc->class_list.front();E;E=E->next()) {

			if (E->get().inherits == cd.name) {

				if (!found) {
					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
					class_desc->push_font(doc_title_font);
					class_desc->add_text(TTR("Inherited by:")+" ");
					class_desc->pop();
					class_desc->pop();

					found = true;
					class_desc->push_font(doc_font);
				}

				if (prev) {

					class_desc->add_text(" , ");
					prev = false;
				}

				_add_type(E->get().name);
				prev = true;
			}
		}

		if (found)
			class_desc->pop();

		class_desc->add_newline();
	}

	class_desc->add_newline();

	if (cd.brief_description!="") {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Brief Description:"));
		class_desc->pop();
		class_desc->pop();

		//class_desc->add_newline();
		class_desc->add_newline();
		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
		class_desc->push_font( doc_font );
		class_desc->push_indent(1);
		_add_text(cd.brief_description);
		class_desc->pop();
		class_desc->pop();
		class_desc->pop();
		class_desc->add_newline();
		class_desc->add_newline();
	}

	bool method_descr=false;
	bool sort_methods = EditorSettings::get_singleton()->get("help/sort_functions_alphabetically");


	if (cd.methods.size()) {

		if (sort_methods)
			cd.methods.sort();

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Public Methods:"));
		class_desc->pop();
		class_desc->pop();

		//class_desc->add_newline();
//		class_desc->add_newline();

		class_desc->push_indent(1);
		class_desc->push_table(2);
		class_desc->set_table_column_expand(1,1);

		for(int i=0;i<cd.methods.size();i++) {

			class_desc->push_cell();


			method_line[cd.methods[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
			class_desc->push_font(doc_code_font);
			_add_type(cd.methods[i].return_type);
			//class_desc->add_text(" ");
			class_desc->pop(); //align
			class_desc->pop(); //font
			class_desc->pop(); //cell
			class_desc->push_cell();
			class_desc->push_font(doc_code_font);

			if (cd.methods[i].description!="") {
				method_descr=true;
				class_desc->push_meta("@"+cd.methods[i].name);
			}
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			_add_text(cd.methods[i].name);
			class_desc->pop();
			if (cd.methods[i].description!="")
				class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?"( ":"(");
			class_desc->pop();
			for(int j=0;j<cd.methods[i].arguments.size();j++) {
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
				if (j>0)
					class_desc->add_text(", ");
				_add_type(cd.methods[i].arguments[j].type);
				class_desc->add_text(" ");
				_add_text(cd.methods[i].arguments[j].name);
				if (cd.methods[i].arguments[j].default_value!="") {

					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
					class_desc->add_text("=");
					class_desc->pop();
					_add_text(cd.methods[i].arguments[j].default_value);
				}

				class_desc->pop();
			}

			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?" )":")");
			class_desc->pop();
			if (cd.methods[i].qualifiers!="") {

				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
				class_desc->add_text(" ");
				_add_text(cd.methods[i].qualifiers);
				class_desc->pop();

			}
			class_desc->pop();//monofont
//			class_desc->add_newline();
			class_desc->pop(); //cell

		}
		class_desc->pop(); //table
		class_desc->pop();
		class_desc->add_newline();
		class_desc->add_newline();

	}

	if (cd.properties.size()) {


		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Members:"));
		class_desc->pop();
		class_desc->pop();
		class_desc->add_newline();

		class_desc->push_indent(1);

		//class_desc->add_newline();

		for(int i=0;i<cd.properties.size();i++) {

			property_line[cd.properties[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);
			_add_type(cd.properties[i].type);
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(" ");
			_add_text(cd.properties[i].name);
			class_desc->pop();
			class_desc->pop();

			if (cd.properties[i].description!="") {
				class_desc->push_font(doc_font);
				class_desc->add_text("  ");
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				_add_text(cd.properties[i].description);
				class_desc->pop();
				class_desc->pop();

			}

			class_desc->add_newline();
		}

		class_desc->add_newline();
		class_desc->pop();


	}

	if (cd.theme_properties.size()) {


		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("GUI Theme Items:"));
		class_desc->pop();
		class_desc->pop();
		class_desc->add_newline();

		class_desc->push_indent(1);

		//class_desc->add_newline();

		for(int i=0;i<cd.theme_properties.size();i++) {

			theme_property_line[cd.theme_properties[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);
			_add_type(cd.theme_properties[i].type);
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->add_text(" ");
			_add_text(cd.theme_properties[i].name);
			class_desc->pop();
			class_desc->pop();

			if (cd.theme_properties[i].description!="") {
				class_desc->push_font(doc_font);
				class_desc->add_text("  ");
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				_add_text(cd.theme_properties[i].description);
				class_desc->pop();
				class_desc->pop();

			}

			class_desc->add_newline();
		}

		class_desc->add_newline();
		class_desc->pop();


	}
	if (cd.signals.size()) {

		if (sort_methods) {
			cd.signals.sort();
		}
		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Signals:"));
		class_desc->pop();
		class_desc->pop();

		class_desc->add_newline();
		//class_desc->add_newline();

		class_desc->push_indent(1);

		for(int i=0;i<cd.signals.size();i++) {

			signal_line[cd.signals[i].name]=class_desc->get_line_count()-2;	//gets overriden if description
			class_desc->push_font(doc_code_font);  // monofont
			//_add_type("void");
			//class_desc->add_text(" ");
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			_add_text(cd.signals[i].name);
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.signals[i].arguments.size()?"( ":"(");
			class_desc->pop();
			for(int j=0;j<cd.signals[i].arguments.size();j++) {
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
				if (j>0)
					class_desc->add_text(", ");
				_add_type(cd.signals[i].arguments[j].type);
				class_desc->add_text(" ");
				_add_text(cd.signals[i].arguments[j].name);
				if (cd.signals[i].arguments[j].default_value!="") {

					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
					class_desc->add_text("=");
					class_desc->pop();
					_add_text(cd.signals[i].arguments[j].default_value);
				}

				class_desc->pop();
			}

			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.signals[i].arguments.size()?" )":")");
			class_desc->pop();
			class_desc->pop(); // end monofont
			if (cd.signals[i].description!="") {

				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				class_desc->add_text(" ");
				_add_text(cd.signals[i].description);
				class_desc->pop();

			}
			class_desc->add_newline();

		}

		class_desc->pop();
		class_desc->add_newline();

	}

	if (cd.constants.size()) {


		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Constants:"));
		class_desc->pop();
		class_desc->pop();
		class_desc->push_indent(1);

		class_desc->add_newline();
		//class_desc->add_newline();

		for(int i=0;i<cd.constants.size();i++) {

			constant_line[cd.constants[i].name]=class_desc->get_line_count()-2;
			class_desc->push_font(doc_code_font);
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
			_add_text(cd.constants[i].name);
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(" = ");
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
			_add_text(cd.constants[i].value);
			class_desc->pop();
			class_desc->pop();
			if (cd.constants[i].description!="") {
				class_desc->push_font(doc_font);
				class_desc->add_text("  ");
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
				_add_text(cd.constants[i].description);
				class_desc->pop();
				class_desc->pop();
			}

			class_desc->add_newline();
		}

		class_desc->pop();
		class_desc->add_newline();


	}

	if (cd.description!="") {

		description_line=class_desc->get_line_count()-2;
		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Description:"));
		class_desc->pop();
		class_desc->pop();

		class_desc->add_newline();
		class_desc->add_newline();
		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
		class_desc->push_font( doc_font );
		class_desc->push_indent(1);
		_add_text(cd.description);
		class_desc->pop();
		class_desc->pop();
		class_desc->pop();
		class_desc->add_newline();
		class_desc->add_newline();
	}

	if (method_descr) {

		class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
		class_desc->push_font(doc_title_font);
		class_desc->add_text(TTR("Method Description:"));
		class_desc->pop();
		class_desc->pop();

		class_desc->add_newline();
		class_desc->add_newline();


		for(int i=0;i<cd.methods.size();i++) {

			method_line[cd.methods[i].name]=class_desc->get_line_count()-2;

			class_desc->push_font(doc_code_font);
			_add_type(cd.methods[i].return_type);

			class_desc->add_text(" ");
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			_add_text(cd.methods[i].name);
			class_desc->pop();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?"( ":"(");
			class_desc->pop();
			for(int j=0;j<cd.methods[i].arguments.size();j++) {
				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
				if (j>0)
					class_desc->add_text(", ");
				_add_type(cd.methods[i].arguments[j].type);
				class_desc->add_text(" ");
				_add_text(cd.methods[i].arguments[j].name);
				if (cd.methods[i].arguments[j].default_value!="") {

					class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
					class_desc->add_text("=");
					class_desc->pop();
					_add_text(cd.methods[i].arguments[j].default_value);
				}

				class_desc->pop();
			}

			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
			class_desc->add_text(cd.methods[i].arguments.size()?" )":")");
			class_desc->pop();
			if (cd.methods[i].qualifiers!="") {

				class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
				class_desc->add_text(" ");
				_add_text(cd.methods[i].qualifiers);
				class_desc->pop();

			}

			class_desc->pop();

			class_desc->add_newline();
			class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
			class_desc->push_font( doc_font );
			class_desc->push_indent(1);
			_add_text(cd.methods[i].description);
			class_desc->pop();
			class_desc->pop();
			class_desc->pop();
			class_desc->add_newline();
			class_desc->add_newline();
			class_desc->add_newline();

		}





	}



	scroll_locked=false;

	return OK;
}