The source code

    /**
     * @class Ext.menu.TextItem
     * @extends Ext.menu.BaseItem
     * Adds a static text string to a menu, usually used as either a heading or group separator.
     * @constructor
     * Creates a new TextItem
     * @param {Object/String} config If config is a string, it is used as the text to display, otherwise it
     * is applied as a config object (and should contain a <tt>text</tt> property).
     * @xtype menutextitem
     */
    Ext.menu.TextItem = Ext.extend(Ext.menu.BaseItem, {
        /**
         * @cfg {String} text The text to display for this item (defaults to '')
         */
        /**
         * @cfg {Boolean} hideOnClick True to hide the containing menu after this item is clicked (defaults to false)
         */
        hideOnClick : false,
        /**
         * @cfg {String} itemCls The default CSS class to use for text items (defaults to "x-menu-text")
         */
        itemCls : "x-menu-text",

        constructor : function(config) {
            if (typeof config == 'string') {
                config = {
                    text: config
                };
            }
            Ext.menu.TextItem.superclass.constructor.call(this, config);
        },

        // private
        onRender : function() {
            var s = document.createElement("span");
            s.className = this.itemCls;
            s.innerHTML = this.text;
            this.el = s;
            Ext.menu.TextItem.superclass.onRender.apply(this, arguments);
        }
    });
    Ext.reg('menutextitem', Ext.menu.TextItem);