コード例 #1
0
void
dmz::QtPluginIconPalletTool::_init (Config &local) {

   RuntimeContext *context (get_plugin_runtime_context ());

   _showMsg = config_create_message (
      "show.name",
      local,
      "DMZ_Show_Icon_Pallet_Tool",
      context);

   subscribe_to_message (_showMsg);

   _useSession = config_to_boolean ("use-session.value", local, _useSession);

   if (_useSession && context) {

      Config session (get_session_config (get_plugin_name (), context));

      QByteArray geometry (config_to_qbytearray ("geometry", session, saveGeometry ()));
      restoreGeometry (geometry);

      if (config_to_boolean ("window.visible", session, False)) { show (); }
   }

   _ui.iconView->setModel (&_model);

   _add_type (Definitions (context).get_root_object_type ());
}
コード例 #2
0
// QtPluginIconPalletTool Interface
void
dmz::QtPluginIconPalletTool::_add_type (const ObjectType &Type) {

   const String IconResource = config_to_string (
      get_plugin_name () + ".resource",
      Type.get_config());

   const String IconName = _rc.find_file (IconResource);

   if (IconName) {

      const String Name = Type.get_name ();

      if (Name) {

         QImage back (
            (int)_iconExtent,
            (int)_iconExtent,
            QImage::Format_ARGB32_Premultiplied);
         QPainter painter (&back);
         painter.setCompositionMode (QPainter::CompositionMode_Source);
         painter.fillRect (back.rect (), Qt::transparent);
         painter.setCompositionMode (QPainter::CompositionMode_SourceOver);
         QSvgRenderer qsr (QString (IconName.get_buffer ()));
         QRectF size = qsr.viewBoxF ();
         qreal width = size.width ();
         qreal height = size.height ();
         qreal scale = (width > height) ? width : height;
         if (scale <= 0.0f) { scale = 1.0f; }
         scale = _iconExtent / scale;
         width *= scale;
         height *= scale;
         size.setWidth (width);
         size.setHeight (height);
         if (height < _iconExtent) { size.moveTop ((_iconExtent - height) * 0.5f); }
         if (width < _iconExtent) { size.moveLeft ((_iconExtent - width) * 0.5f); }
         qsr.render (&painter, size);
         painter.end ();
         QIcon icon;
         icon.addPixmap (QPixmap::fromImage (back));
         QStandardItem *item = new QStandardItem (icon, Name.get_buffer ());
         item->setEditable (false);
         _model.appendRow (item);
      }
   }
   else if (IconResource) {

      _log.error << "Unable to find icon resource: " << IconResource
          << " for object type: " << Type.get_name () << endl;
   }

   RuntimeIterator it;
   ObjectType next;

   while (Type.get_next_child (it, next)) { _add_type (next); }
}
コード例 #3
0
ファイル: editor_help.cpp プロジェクト: HiddenDark/godot
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;
}
コード例 #4
0
ファイル: editor_help.cpp プロジェクト: P-GLEZ/godot
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;
}