Part 1 - Messages module
Use the Message module to create "Messages" for each of the message types (bullets) in your question, similar to what is detailed in the answer to "How to get notifications in a new window when using the Mentions module?".
The Message module uses so called "Message types" (which you have to configure within admin). It seems that you should just create 1 such Message type for each of the variations of messages in your question.
Part 2 - Make messages manageable
The Message module is great, but it doesn't really come with some UI where each user can manage (view, mark read, etc) their messages. That why you may want to also perform the steps explained in "How to allow users to manage their own Message Stack messages?", which can be summarized like so:
- Create a flag (using the the Flag module).
- Create a view 'Messages by user'.
- Use Rules to flag/unflag messages.
- Trigger the Rules Component to mark messages (using the VBO module).
- Create notifications about Unread Messages (using the "Menu Badges" module, further detailed below).
Part 3 - Menu Badges module
The Menu Badges module is all you need to add such notifications, which you can add to any menu item and/or menu tab of your choice.
Here are some details about it (from its project page):
Provides a method for adding iOS-style badges to menu items. (see screenshot)
Adding Badges to Menus
Once enabled, go to
Administration > Structure > Menus, and click "list links" next to the menu containing the target item. Click "edit" next to the item and select the badge to display with the Display Menu Badge select box.
Adding Badges to Tabs
For adding badges to menu tabs, there is a tab under
Administration > Structure > Menus called "Tab Menu Badges". Search for the menu router path of the tab you want to alter, then select a badge from the corresponding select box.
The module includes five example badges, and new badges can be created easily with Views. Modules can also supply their own badges with a hook implementation. See the README.txt file for details.
Because of how it integrates with the Views module, you basically reduce the solution for any type of notification to something like "Just create an appropriate view of it".
However, there is a small caveat: if you really want the actual number (shown in the red circle) to be accurate, make sure you have some field in your view that will actually correspond to the "new" part of your question. To better explain this: have a look at the "
tracker" view (disabled by default), which has the fields "Content:Has new content" and "Content:Has new comments". Those are 2 perfect fields to use if you want to use Menu Badges to get notified whenever there is new content, or new comments.