Plugin:TabSRMM/Containers

From Miranda NG
Jump to navigation Jump to search
Other languages:

In TabSRMM terminology, message windows are often called containers. So whenever you see this term, it basically means a top level message window. It is called a container, because it acts as a top level parent window for the actual session windows. The container implements a tabbed user interface and can hold any number of children and each child can be either a standard IM window (for 1:1 instant messaging chats) or a group chat window.

TabSRMM also supports multiple containers. You can have as many as you want and there are 3 different modes for assigning a chat session to a particular container. A special case is the single window mode which disables the tabbed user interface. When active, each chat session will get its own top level window and any container window will hold exactly one child.

Configuration

Many options in TabSRMM are implemented on a per container basis, which means that different container windows can act or look different from each other. This is useful when you want to group and organize your chat sessions in one or another way. It is, however, completely optional and by default, all containers share a common set of settings to simplify configuration.

Identifying containers

Any container is identified by its name, which must be unique. How container names are assigned depends on the way container windows are used in the plugin:

  • The default container. It always exists and its name is always "Default". You cannot rename or delete the default container. Any non-assigned chat session will be opened in the default container
  • Container names correspond to contact list group names. This happens when you use the option to organize chat sessions with the help of your contact list groups. Whenever you open a chat window, it will open inside a container that inherits its name from the contact list group. If a contact is not in any contact list group, it will open in the default container.
Note
The contact list's setting of showing groups is not considered here. A contact will still be in its group despite the contact list using a "flat" layout with no groups.
  • Manually assigned names – this is the standard way. You are responsible for creating new (named) containers and assigning contacts to them. In this mode, all new chat sessions will open in the default container until you assign them to another one (which is completely optional, by the way).

Assigning and managing containers

To create or delete containers, you must have a message window open. The container UI can be reached from the following locations:

  • right click the message window's toolbar and choose Attach to container…
  • right click any tab to get the same popup menu.

The screenshot on the right shows how the container management dialog looks like. It shows a list of containers and a number of buttons to create, rename or delete containers.

Note
The container management UI can only be used when using the manual assignment mode. In any other mode, container management is automatic and the menu entries for assigning or managing containers are unavailable.
Managing containers

To assign the current contact to a container

Select the target container in the list and click OK. The current contact's message window will close and re-open in the new container. If the current message tab was the last tab in the open container, it will close, otherwise it will stay open.

To create a new named container

Enter the name in the text field at the bottom and click Create new.

To delete a container

Select it from the list and click Delete.

What happens with assigned contacts when their container is deleted?

The next time, they will open in the default container. Nothing is lost.

Why is it not possible to rearrange message tabs using Drag and Drop?

Because it's not so easy to implement. Also, I do not consider it a major improvement in usability. Using drag and drop would require you to open the target container before you can drag the tab. If the target container is new, you cannot open it, because a container cannot exist without at least one message tab.

Quick assignment

When you know that the target container does already exist and just want to move a contact quickly, you can use the Attach to → <popup menu entry>. It will hold a list of available containers to choose from. By using this method, you can skip invoking the container management dialog.

Auto opening message windows

There are a few methods to configure the way, new message windows are opened when a message is received from some contact. By default, TabSRMM will not automatically open any message windows. The event will flash in the system tray until you click the tray icon or manually open the message window for the contact from whom you received the message. Additionally, you may see a notification popup (if NewEventNotify plugin is installed).

Some people find it more convent to have message windows created automatically when new messages arrive. You can configure this behavior under Message sessions → Tabs and layout with the following settings, all of them in the section How to create tabs and windows for incoming messages:

  1. ALWAYS activate new message sessions – when this option is active, TabSRMM will automatically open and activate the message window for any incoming message. This option will "steal" the focus of the current active desktop window and should therefore be considered the most aggressive option. Also, this option has priority over the others, so it will always override any other window creation mode. Disable it, if you want to have message windows opened in the background or in minimized state.
  2. Automatically create new message sessions without activating them – when active, new tabs will be created (but not focused) automatically, but only when the parent container to which the tab should be added is already open. This option will only allow automatic creation of new tabs in already existing containers.
  3. New windows are minimized – when active, new message windows are created minimized on the task bar (discreet mode, the message window will never steal the focus). Option 2 must also be enabled to make this work. Basically, if you disable option 3 while option 2 is enabled, no new windows will be created automatically, but new tabs will be automatically added to existing windows.
  4. Activate a minimized window when a new tab is created inside it – if enabled, a minimized message window will be restored to the desktop when a new tab is added to it. Also, when a new container is created on demand, it will put itself to foreground. This option should be considered aggressive, because it will steal the input focus.
  5. Automatically switch existing tabs in minimized windows on incoming messages – this option is ignored when using Aero Peek task bar features.

The different modes of assigning contacts to containers

As mentioned, you can have multiple containers which may or may not be wanted and can help you with organizing your chat sessions. In a fresh install, only one container is defined and it is called the default container. Also, there are 4 different methods to tell TabSRMM how it should assign chat sessions to a container. These modes can be chosen under Message sessions → Containers.

Use contact list groups for organizing tabs (one window per group)

This option will tell TabSRMM to automatically create one container for each contact list group and add chat sessions as tabs. Let's assume you have a contact list group with the name "Friends" which holds a few of your more important contacts. Whenever you open a message window for one of the contacts in this group, TabSRMM will open the container with the name "Friends" and add the chat tab to it. If the container is already open, the chat window will be added as a new tab. This mode is fully automatic.

Note
When you move a contact from one contact list group to another one, the message tab will not move to the new container immediately. This will be done the next time you open a chat session for this contact.

Tabbed interface, limit the maximum number of tabs per window to:

This mode, which is also fully automatic, will just limit the number of sessions per container window to the given number. Whenever a new session is created, it is added to the current container, unless this container already has reached the session limit, in which case a new container will be created.

No tabs at all, each session has its own top level window

This mode will effectively disable the tabbed user interface. When active, each message session will be opened in its own top level window. Also, in this mode, container settings are global for all message windows. Only the size and position of the window will be saved individually for each contact or chat room.

Default mode (tabbed interface, manual assignments)

This is probably the most flexible method of using multiple containers. In this mode, you have full control over how many different containers you want to use and in which container a given contact should be placed when you open a message session. In a fresh install, only one named container is available. This is called the default container and it is used for any new message session, unless the contact had been assigned to a different container.

See the section above about assigning containers in manual mode.