I’ve been stuggeling with a similar issue. (button not appearing in mce editor toolbar). This pattern worked for me in WP 3.9 / tinymce 4.0:
tinymce.PluginManager.add( 'thing' , function( editor ){
editor.addButton('thing', {
type: 'listbox',
text: 'My listbox',
onselect: function(e) {
// do things...
},
values: [
{text: 'Menu item 1', value: 'Some text 1'},
{text: 'Menu item 2', value: 'Some text 2'}
]
});
});
Sad enough this is not backwards compatibele, so you will either break 3.8 support or you will need to implement some version sniffing.