- Added some new color constants.

- Added set/getSize and set/getLocation methods to the UIService.
cusax-fix
Yana Stamcheva 17 years ago
parent 04d5a4c7e3
commit 0c40c5109a

@ -124,6 +124,14 @@ toolBarForeground=FFFFFF
# Initial account registration protocol panel background.
accountRegistrationBackground=C2CEE0
# Contact list contact row color.
contactListRowColor=e8e9ef
contactListGroupRowColor=C2CEE0
# Contact list group row color.
contactListGroupRowColor=C2CEE0
# Contact list gradient group color.
contactListGroupGradientColor=C2CEE0
# Main window background color.
mainWindowBackground=FAFAFA

@ -7,6 +7,7 @@ net.java.sip.communicator.impl.gui.isMessageHistoryShown=true
net.java.sip.communicator.impl.gui.messageHistorySize=10
net.java.sip.communicator.impl.gui.isTransparentWindowEnabled=false
net.java.sip.communicator.impl.gui.windowTransparency=180
net.java.sip.communicator.impl.gui.isWindowDecorated=true
applicationName=SIP Communicator
applicationWebSite=http://sip-communicator.org

@ -219,6 +219,49 @@ public void setVisible(final boolean isVisible)
this.mainFrame.setVisible(isVisible);
}
/**
* Locates the main application window to the new x and y coordinates.
*
* @param x The new x coordinate.
* @param y The new y coordinate.
*/
public void setLocation(int x, int y)
{
mainFrame.setLocation(x, y);
}
/**
* Returns the current location of the main application window. The returned
* point is the top left corner of the window.
*
* @return The top left corner coordinates of the main application window.
*/
public Point getLocation()
{
return mainFrame.getLocation();
}
/**
* Returns the size of the main application window.
*
* @return the size of the main application window.
*/
public Dimension getSize()
{
return mainFrame.getSize();
}
/**
* Sets the size of the main application window.
*
* @param width The width of the window.
* @param height The height of the window.
*/
public void setSize(int width, int height)
{
mainFrame.setSize(width, height);
}
/**
* Implements <code>minimize</code> in the UIService interface. Minimizes
* the main application window.

@ -58,9 +58,9 @@ public class MainFrame
{
private Logger logger = Logger.getLogger(MainFrame.class.getName());
private JPanel centerPanel = new JPanel(new BorderLayout());
private JPanel mainPanel = new JPanel(new BorderLayout());
private JPanel mainPanel = new JPanel(new BorderLayout(0, 5));
private JPanel statusBarPanel = new JPanel(new BorderLayout());
private MainMenu menu;
@ -89,6 +89,7 @@ public class MainFrame
private Hashtable nativePluginsTable = new Hashtable();
private JPanel pluginPanelNorth = new JPanel();
private JPanel pluginPanelSouth = new JPanel();
private JPanel pluginPanelWest = new JPanel();
private JPanel pluginPanelEast = new JPanel();
@ -100,6 +101,11 @@ public class MainFrame
*/
public MainFrame()
{
if (!ConfigurationManager.isWindowDecorated())
{
this.setUndecorated(true);
}
this.chatWindowManager = new ChatWindowManager(this);
this.mainCallPanel = new MainCallPanel(this);
@ -136,6 +142,12 @@ public MainFrame()
this.setTitle(applicationName);
this.setContentPane(new MainContentPane());
this.mainPanel.setBackground(new Color(
GuiActivator.getResources()
.getColor("mainWindowBackground")));
this.init();
this.initPluginComponents();
@ -149,31 +161,38 @@ private void init()
this.setKeybindingInput(KeybindingSet.Category.MAIN);
this.addKeybindingAction("main-rename", new RenameAction());
this.mainPanel.setOpaque(false);
JPanel northPanel = new JPanel(new BorderLayout());
JPanel centerPanel = new JPanel(new BorderLayout());
northPanel.setOpaque(false);
centerPanel.setOpaque(false);
this.statusBarPanel.setOpaque(false);
this.contactListPanel.setOpaque(false);
this.centerPanel.setOpaque(false);
this.mainCallPanel.setOpaque(false);
this.centerPanel.add(contactListPanel, BorderLayout.CENTER);
this.centerPanel.add(mainCallPanel, BorderLayout.SOUTH);
this.mainPanel.add(accountStatusPanel, BorderLayout.NORTH);
this.mainPanel.add(centerPanel, BorderLayout.CENTER);
JPanel menusPanel = new JPanel(new BorderLayout());
JPanel menusPanel = new JPanel(new BorderLayout(0, 5));
this.setJMenuBar(menu);
String osName = System.getProperty("os.name");
if (osName.startsWith("Mac"))
// this.setJMenuBar(menu);
// menusPanel.add(menu, BorderLayout.CENTER);
menusPanel.add(quickMenu, BorderLayout.SOUTH);
JPanel northPanel = new JPanel(new BorderLayout());
menusPanel.setUI(new SIPCommOpaquePanelUI());
northPanel.add(new LogoBar(), BorderLayout.NORTH);
northPanel.add(menusPanel, BorderLayout.CENTER);
this.getContentPane().add(northPanel, BorderLayout.NORTH);
centerPanel.add(accountStatusPanel, BorderLayout.NORTH);
centerPanel.add(contactListPanel, BorderLayout.CENTER);
centerPanel.add(mainCallPanel, BorderLayout.SOUTH);
this.mainPanel.add(northPanel, BorderLayout.NORTH);
this.mainPanel.add(centerPanel, BorderLayout.CENTER);
this.getContentPane().add(mainPanel, BorderLayout.CENTER);
this.getContentPane().add(statusBarPanel, BorderLayout.SOUTH);
}
/**
@ -181,8 +200,10 @@ private void init()
*/
private void initBounds()
{
int width = GuiActivator.getResources().getSettingsInt("mainWindowWidth");
int height = GuiActivator.getResources().getSettingsInt("mainWindowHeight");
int width
= GuiActivator.getResources().getSettingsInt("mainWindowWidth");
int height
= GuiActivator.getResources().getSettingsInt("mainWindowHeight");
this.setSize(width, height);
@ -1097,24 +1118,29 @@ private ContactEventHandler getContactHandlerForProvider(
*/
private void initPluginComponents()
{
pluginPanelEast.setLayout(
new BoxLayout(pluginPanelEast, BoxLayout.Y_AXIS));
pluginPanelSouth.setLayout(
new BoxLayout(pluginPanelSouth, BoxLayout.Y_AXIS));
pluginPanelNorth.setLayout(
new BoxLayout(pluginPanelNorth, BoxLayout.Y_AXIS));
pluginPanelEast.setLayout(
new BoxLayout(pluginPanelEast, BoxLayout.Y_AXIS));
pluginPanelWest.setLayout(
new BoxLayout(pluginPanelWest, BoxLayout.Y_AXIS));
this.getContentPane().add(pluginPanelNorth, BorderLayout.NORTH);
this.getContentPane().add(pluginPanelEast, BorderLayout.EAST);
this.getContentPane().add(pluginPanelSouth, BorderLayout.SOUTH);
this.getContentPane().add(pluginPanelWest, BorderLayout.WEST);
this.mainPanel.add(pluginPanelSouth, BorderLayout.SOUTH);
// Search for plugin components registered through the OSGI bundle
// context.
ServiceReference[] serRefs = null;
String osgiFilter = "("
String osgiFilter = "(|("
+ Container.CONTAINER_ID
+ "="+Container.CONTAINER_MAIN_WINDOW.getID()+")";
+ "="+Container.CONTAINER_MAIN_WINDOW.getID()+")"
+ "(" + Container.CONTAINER_ID
+ "="+Container.CONTAINER_STATUS_BAR.getID()+"))";
try
{
@ -1147,8 +1173,9 @@ private void initPluginComponents()
else
constraints = BorderLayout.SOUTH;
this.addPluginComponent( (Component) c.getComponent(),
constraints);
this.addPluginComponent((Component) c.getComponent(),
c.getContainer(),
constraints);
}
}
}
@ -1165,7 +1192,9 @@ public void pluginComponentAdded(PluginComponentEvent event)
PluginComponent pluginComponent = event.getPluginComponent();
if (pluginComponent.getContainer()
.equals(Container.CONTAINER_MAIN_WINDOW))
.equals(Container.CONTAINER_MAIN_WINDOW)
|| pluginComponent.getContainer()
.equals(Container.CONTAINER_STATUS_BAR))
{
Object constraints = null;
@ -1197,6 +1226,7 @@ public void run()
{
this.addPluginComponent(
(Component) pluginComponent.getComponent(),
pluginComponent.getContainer(),
constraints);
}
}
@ -1236,7 +1266,10 @@ public void pluginComponentRemoved(PluginComponentEvent event)
{
public void run()
{
removePluginComponent(c, finalConstraints);
removePluginComponent(
c,
pluginComponent.getContainer(),
finalConstraints);
getContentPane().repaint();
pack();
@ -1248,6 +1281,7 @@ public void run()
{
this.removePluginComponent(
(Component) pluginComponent.getComponent(),
pluginComponent.getContainer(),
constraints);
}
@ -1337,7 +1371,9 @@ private void removeNativePlugins()
if (constraints == null)
constraints = BorderLayout.SOUTH;
this.removePluginComponent(c, constraints);
this.removePluginComponent( c,
pluginComponent.getContainer(),
constraints);
this.getContentPane().repaint();
}
@ -1364,7 +1400,7 @@ public void addNativePlugins()
Component c = (Component) plugin.getComponent();
this.addPluginComponent(c, constraints);
this.addPluginComponent(c, plugin.getContainer(), constraints);
this.nativePluginsTable.put(plugin, c);
}
@ -1453,34 +1489,36 @@ public void run()
* @param c the component to add
* @param constraints the constraints determining the container
*/
private void addPluginComponent(Component c, Object constraints)
private void addPluginComponent(Component c,
Container container,
Object constraints)
{
if (constraints.equals(BorderLayout.SOUTH))
{
if (pluginPanelSouth.getComponentCount() == 0)
pluginPanelSouth.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5));
pluginPanelSouth.add(c);
pluginPanelSouth.repaint();
}
else if (constraints.equals(BorderLayout.WEST))
if (container.equals(Container.CONTAINER_MAIN_WINDOW))
{
if (pluginPanelWest.getComponentCount() == 0)
pluginPanelWest.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5));
pluginPanelWest.add(c);
pluginPanelSouth.repaint();
if (constraints.equals(BorderLayout.NORTH))
{
pluginPanelNorth.add(c);
pluginPanelNorth.repaint();
}
else if (constraints.equals(BorderLayout.SOUTH))
{
pluginPanelSouth.add(c);
pluginPanelSouth.repaint();
}
else if (constraints.equals(BorderLayout.WEST))
{
pluginPanelWest.add(c);
pluginPanelSouth.repaint();
}
else if (constraints.equals(BorderLayout.EAST))
{
pluginPanelEast.add(c);
pluginPanelSouth.repaint();
}
}
else if (constraints.equals(BorderLayout.EAST))
else if (container.equals(Container.CONTAINER_STATUS_BAR))
{
if (pluginPanelEast.getComponentCount() == 0)
pluginPanelEast.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5));
pluginPanelEast.add(c);
pluginPanelSouth.repaint();
statusBarPanel.add(c);
}
this.getContentPane().repaint();
@ -1493,14 +1531,25 @@ else if (constraints.equals(BorderLayout.EAST))
* @param c the component to remove
* @param constraints the constraints determining the container
*/
private void removePluginComponent(Component c, Object constraints)
private void removePluginComponent( Component c,
Container container,
Object constraints)
{
if (constraints.equals(BorderLayout.SOUTH))
pluginPanelSouth.remove(c);
else if (constraints.equals(BorderLayout.WEST))
pluginPanelWest.remove(c);
else if (constraints.equals(BorderLayout.EAST))
pluginPanelEast.remove(c);
if (container.equals(Container.CONTAINER_MAIN_WINDOW))
{
if (constraints.equals(BorderLayout.NORTH))
pluginPanelNorth.remove(c);
else if (constraints.equals(BorderLayout.SOUTH))
pluginPanelSouth.remove(c);
else if (constraints.equals(BorderLayout.WEST))
pluginPanelWest.remove(c);
else if (constraints.equals(BorderLayout.EAST))
pluginPanelEast.remove(c);
}
else if (container.equals(Container.CONTAINER_STATUS_BAR))
{
this.statusBarPanel.remove(c);
}
}
/**
@ -1511,4 +1560,16 @@ public AccountStatusPanel getAccountStatusPanel()
{
return accountStatusPanel;
}
private class MainContentPane extends JPanel
{
public MainContentPane()
{
super(new BorderLayout());
this.setBackground(new Color(
GuiActivator.getResources()
.getColor("desktopBackgroundColor")));
}
}
}

@ -96,13 +96,18 @@ public MainCallPanel(MainFrame mainFrame)
callButton.setEnabled(false);
this.add(comboPanel, BorderLayout.CENTER);
this.add(comboPanel, BorderLayout.NORTH);
callViaPanel.add(callViaLabel);
callViaPanel.add(accountSelectorBox);
buttonsPanel.add(callButton);
this.setOpaque(false);
comboPanel.setOpaque(false);
buttonsPanel.setOpaque(false);
phoneNumberCombo.setOpaque(false);
comboPanel.add(dialButton, BorderLayout.WEST);
comboPanel.add(phoneNumberCombo, BorderLayout.CENTER);
comboPanel.add(buttonsPanel, BorderLayout.EAST);

@ -242,7 +242,14 @@ public void paintComponent(Graphics g)
if (!this.isLeaf)
{
g2.setColor(Constants.CONTACT_LIST_GROUP_BG_COLOR);
GradientPaint p = new GradientPaint(this.getWidth()/2, 0,
Constants.CONTACT_LIST_GROUP_BG_COLOR,
this.getWidth()/2,
this.getHeight(),
Constants.CONTACT_LIST_GROUP_BG_GRADIENT_COLOR);
g2.setPaint(p);
g2.fillRoundRect(1, 1, this.getWidth(), this.getHeight() - 1, 7, 7);
}
else if (index%2 > 0)
@ -316,4 +323,4 @@ private String getGroupToolTip(MetaContactGroup groupItem)
return toolTipText;
}
}
}

@ -0,0 +1,168 @@
package net.java.sip.communicator.impl.gui.main.menus;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.i18n.*;
import net.java.sip.communicator.impl.gui.utils.*;
import net.java.sip.communicator.service.gui.*;
public class AboutWindow
extends JDialog
implements ActionListener,
ExportedWindow
{
private WindowBackground mainPanel = new WindowBackground();
private JLabel versionLabel = new JLabel(" "
+ System.getProperty("sip-communicator.version"));
public AboutWindow()
{
this.setModal(false);
this.setResizable(false);
this.setTitle(
Messages.getI18NString("aboutWindowTitle",
new String[]{ GuiActivator.getResources()
.getSettingsString("applicationName")}).getText());
this.mainPanel.setLayout(null);
this.versionLabel.setFont(Constants.FONT.deriveFont(12));
this.versionLabel.setForeground(new Color(
GuiActivator.getResources().getColor("splashScreenTitleColor")));
this.versionLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
this.mainPanel.add(versionLabel);
Insets insets = mainPanel.getInsets();
versionLabel.setBounds(370 + insets.left, 307 + insets.top, 200, 20);
this.getContentPane().add(mainPanel);
// Close the splash screen on simple click or Esc.
this.getGlassPane().addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
AboutWindow.this.close(false);
}
});
this.getGlassPane().setVisible(true);
ActionMap amap = this.getRootPane().getActionMap();
amap.put("close", new CloseAction());
InputMap imap = this.getRootPane().getInputMap(
JComponent.WHEN_IN_FOCUSED_WINDOW);
imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close");
}
protected void close(boolean isEscaped)
{
this.dispose();
}
/**
* The action invoked when user presses Escape key.
*/
private class CloseAction extends AbstractAction
{
public void actionPerformed(ActionEvent e)
{
AboutWindow.this.close(true);
}
}
/**
* Constructs the window background in order to have a background image.
*/
private class WindowBackground
extends JPanel
{
private Image bgImage;
public WindowBackground()
{
this.setOpaque(true);
bgImage = ImageLoader.getImage(
ImageLoader.ABOUT_WINDOW_BACKGROUND);
this.setPreferredSize(new Dimension(bgImage.getWidth(this),
bgImage.getHeight(this)));
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawImage(bgImage, 0, 0, null);
}
}
public void actionPerformed(ActionEvent e)
{
this.dispose();
}
/**
* Implements the <tt>ExportedWindow.getIdentifier()</tt> method.
*/
public WindowID getIdentifier()
{
return ExportedWindow.ABOUT_WINDOW;
}
/**
* This dialog could not be minimized.
*/
public void minimize()
{
}
/**
* This dialog could not be maximized.
*/
public void maximize()
{
}
/**
* Implements the <tt>ExportedWindow.bringToFront()</tt> method. Brings
* this window to front.
*/
public void bringToFront()
{
this.toFront();
}
public static void activateAntialiasing(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
}
/**
* The source of the window
* @return the source of the window
*/
public Object getSource()
{
return this;
}
}

@ -9,13 +9,12 @@
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import org.osgi.framework.*;
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.customcontrols.*;
import net.java.sip.communicator.impl.gui.event.*;
@ -23,6 +22,7 @@
import net.java.sip.communicator.impl.gui.main.*;
import net.java.sip.communicator.impl.gui.main.contactlist.*;
import net.java.sip.communicator.impl.gui.main.contactlist.addcontact.*;
import net.java.sip.communicator.impl.gui.main.contactlist.addgroup.*;
import net.java.sip.communicator.impl.gui.utils.*;
import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
@ -30,6 +30,8 @@
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
import org.osgi.framework.*;
/**
* The <tt>QuickMenu</tt> is the toolbar on the top of the main
* application window. It provides quick access to the "User info" window, the
@ -43,7 +45,7 @@
* @author Yana Stamcheva
*/
public class ExtendedQuickMenu
extends SIPCommToolBar
extends JPanel
implements MouseListener,
PluginComponentListener,
ComponentListener,
@ -51,32 +53,44 @@ public class ExtendedQuickMenu
{
private Logger logger = Logger.getLogger(QuickMenu.class.getName());
private SIPCommToolBar toolBar = new SIPCommToolBar();
BufferedImage backgroundImage
= ImageLoader.getImage(ImageLoader.TOOL_BAR_BACKGROUND);
Rectangle rectangle
= new Rectangle(0, 0,
backgroundImage.getWidth(null),
backgroundImage.getHeight(null));
TexturePaint texture = new TexturePaint(backgroundImage, rectangle);
private ToolBarButton infoButton = new ToolBarButton(
Messages.getI18NString("info").getText(),
ImageLoader.getImage(ImageLoader.QUICK_MENU_INFO_ICON));
private ToolBarButton configureButton = new ToolBarButton(
Messages.getI18NString("settings").getText(),
ImageLoader.getImage(ImageLoader.QUICK_MENU_CONFIGURE_ICON));
private ToolBarButton hideShowButton = new ToolBarButton(
Messages.getI18NString("showOffline").getText(),
ImageLoader.getImage(ImageLoader.QUICK_MENU_SHOW_OFFLINE_ICON));
private ToolBarButton addButton = new ToolBarButton(
Messages.getI18NString("add").getText(),
ImageLoader.getImage(ImageLoader.QUICK_MENU_ADD_ICON));
private ToolBarButton soundButton = new ToolBarButton(
Messages.getI18NString("sound").getText(),
ImageLoader.getImage(ImageLoader.QUICK_MENU_SOUND_ON_ICON));
private ToolBarButton createGroupButton = new ToolBarButton(
ImageLoader.getImage(ImageLoader.QUICK_MENU_CREATE_GROUP_ICON));
private static int DEFAULT_BUTTON_HEIGHT
= GuiActivator.getResources().getSettingsInt("mainToolbarButtonHeight");
private static int DEFAULT_BUTTON_WIDTH
= GuiActivator.getResources().getSettingsInt("mainToolbarButtonWidth");
private MoreButton moreButton = new MoreButton();
private ExportedWindow configDialog;
private MainFrame mainFrame;
@ -85,47 +99,59 @@ public class ExtendedQuickMenu
private Hashtable pluginsTable = new Hashtable();
private LinkedList components = new LinkedList();
/**
* Create an instance of the <tt>QuickMenu</tt>.
* @param mainFrame The parent <tt>MainFrame</tt> window.
*/
public ExtendedQuickMenu(MainFrame mainFrame)
{
super(new BorderLayout());
this.mainFrame = mainFrame;
this.setRollover(true);
this.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 0));
this.toolBar.setOpaque(false);
this.toolBar.setRollover(true);
this.toolBar.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0));
this.setFloatable(true);
this.toolBar.setFloatable(true);
int buttonWidth = calculateButtonWidth();
this.setMinimumSize(new Dimension(650, 40));
this.setPreferredSize(new Dimension(650, 40));
this.infoButton.setPreferredSize(
new Dimension(buttonWidth, DEFAULT_BUTTON_HEIGHT));
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
this.configureButton.setPreferredSize(
new Dimension(buttonWidth, DEFAULT_BUTTON_HEIGHT));
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
this.hideShowButton.setPreferredSize(
new Dimension(buttonWidth, DEFAULT_BUTTON_HEIGHT));
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
this.addButton.setPreferredSize(
new Dimension(buttonWidth, DEFAULT_BUTTON_HEIGHT));
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
this.soundButton.setPreferredSize(
new Dimension(buttonWidth, DEFAULT_BUTTON_HEIGHT));
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
this.createGroupButton.setPreferredSize(
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
this.infoButton.setToolTipText(
Messages.getI18NString("contactInfo").getText());
this.configureButton.setToolTipText(
Messages.getI18NString("configure").getText());
Messages.getI18NString("settings").getText());
this.hideShowButton.setToolTipText(
Messages.getI18NString("hideOfflineContacts").getText());
this.addButton.setToolTipText(
Messages.getI18NString("addContact").getText());
this.soundButton.setToolTipText(
Messages.getI18NString("soundOnOff").getText());
this.createGroupButton.setToolTipText(
Messages.getI18NString("createGroup").getText());
this.updateMuteButton(
GuiActivator.getAudioNotifier().isMute());
this.init();
this.initPluginComponents();
}
/**
@ -133,31 +159,38 @@ public ExtendedQuickMenu(MainFrame mainFrame)
*/
private void init()
{
this.add(addButton);
this.add(configureButton);
this.add(infoButton);
this.add(hideShowButton);
this.add(soundButton);
this.add(toolBar, BorderLayout.CENTER);
this.toolBar.add(addButton);
this.toolBar.add(createGroupButton);
this.toolBar.add(configureButton);
this.toolBar.add(hideShowButton);
this.toolBar.add(soundButton);
this.components.add(addButton);
this.components.add(createGroupButton);
this.components.add(configureButton);
this.components.add(hideShowButton);
this.components.add(soundButton);
this.addButton.setName("add");
this.configureButton.setName("config");
this.hideShowButton.setName("search");
this.infoButton.setName("info");
this.soundButton.setName("sound");
this.createGroupButton.setName("createGroup");
this.addButton.addMouseListener(this);
this.configureButton.addMouseListener(this);
this.hideShowButton.addMouseListener(this);
this.infoButton.addMouseListener(this);
this.soundButton.addMouseListener(this);
this.createGroupButton.addMouseListener(this);
this.addButton.addComponentListener(this);
this.configureButton.addComponentListener(this);
this.hideShowButton.addComponentListener(this);
this.infoButton.addComponentListener(this);
this.soundButton.addComponentListener(this);
this.initPluginComponents();
this.createGroupButton.addComponentListener(this);
}
private void initPluginComponents()
@ -191,6 +224,9 @@ private void initPluginComponents()
Object selectedValue = mainFrame.getContactListPanel()
.getContactList().getSelectedValue();
if(component.getComponent() == null)
continue;
if(selectedValue instanceof MetaContact)
{
component.setCurrentContact((MetaContact)selectedValue);
@ -201,154 +237,60 @@ else if(selectedValue instanceof MetaContactGroup)
.setCurrentContactGroup((MetaContactGroup)selectedValue);
}
Component c = (Component)component.getComponent();
this.pluginsTable.put(component, c);
this.add(c);
Component c = (Component) component.getComponent();
this.repaint();
if (c != null)
{
if (component.getPositionIndex() > -1)
{
int index = component.getPositionIndex();
this.toolBar.add(c, index);
this.components.add(index, c);
}
else
{
this.toolBar.add(c);
this.components.add(c);
}
this.pluginsTable.put(component, c);
this.repaint();
}
}
}
GuiActivator.getUIService().addPluginComponentListener(this);
}
/**
* Handles the <tt>ActionEvent</tt> triggered when user clicks on one of
* the buttons in this toolbar.
*/
public void mousePressed(MouseEvent e)
private class AddContactAction extends AbstractAction
{
JLabel button = (JLabel) e.getSource();
String buttonName = button.getName();
if (buttonName.equals("add"))
public void actionPerformed(ActionEvent arg0)
{
AddContactWizard wizard = new AddContactWizard(mainFrame);
wizard.setVisible(true);
}
else if (buttonName.equals("config"))
}
private class ConfigAction extends AbstractAction
{
public void actionPerformed(ActionEvent arg0)
{
configDialog = GuiActivator.getUIService()
.getExportedWindow(ExportedWindow.CONFIGURATION_WINDOW);
configDialog.setVisible(true);
}
else if (buttonName.equals("search"))
{
ContactList contactList = mainFrame.getContactListPanel()
.getContactList();
ContactListModel listModel
= (ContactListModel) contactList.getModel();
Object selectedObject = null;
int currentlySelectedIndex = contactList.getSelectedIndex();
if(currentlySelectedIndex != -1)
{
selectedObject
= listModel.getElementAt(currentlySelectedIndex);
}
if(ConfigurationManager.isShowOffline())
{
button.setText(
"<html><center>"
+ Messages.getI18NString("showOffline").getText()
+ "</center></html>");
button.setIcon(new ImageIcon(ImageLoader.getImage(
ImageLoader.QUICK_MENU_SHOW_OFFLINE_ICON)));
button.setToolTipText(Messages
.getI18NString("showOfflineContacts").getText());
}
else
{
button.setText(
"<html><center>"
+ Messages.getI18NString("hideOffline").getText()
+ "</center></html>");
button.setIcon(new ImageIcon(ImageLoader.getImage(
ImageLoader.QUICK_MENU_HIDE_OFFLINE_ICON)));
button.setToolTipText(Messages
.getI18NString("hideOfflineContacts").getText());
}
contactList.setShowOffline(!ConfigurationManager.isShowOffline());
if (selectedObject != null)
{
if (selectedObject instanceof MetaContact)
{
contactList.setSelectedIndex(
listModel.indexOf((MetaContact) selectedObject));
}
else
{
contactList.setSelectedIndex(
listModel.indexOf(
(MetaContactGroup) selectedObject));
}
}
}
else if (buttonName.equals("info"))
{
MetaContact selectedMetaContact =
(MetaContact) mainFrame.getContactListPanel()
.getContactList().getSelectedValue();
if(selectedMetaContact != null)
{
OperationSetWebContactInfo wContactInfo = null;
Iterator protocolContacts = selectedMetaContact.getContacts();
while(protocolContacts.hasNext())
{
Contact protoContact = (Contact) protocolContacts.next();
wContactInfo = mainFrame.getWebContactInfoOpSet(
protoContact.getProtocolProvider());
if(wContactInfo != null)
break;
}
if(wContactInfo != null)
{
Contact defaultContact = selectedMetaContact
.getDefaultContact();
GuiActivator.getBrowserLauncher().openURL(
wContactInfo.getWebContactInfo(defaultContact)
.toString());
}
else
{
new ErrorDialog(mainFrame,
Messages.getI18NString("warning").getText(),
Messages.getI18NString("selectContactSupportingInfo")
.getText(),
ErrorDialog.WARNING).showDialog();
}
}
}
else if (buttonName.equals("sound"))
{
if(GuiActivator.getAudioNotifier().isMute())
{
updateMuteButton(false);
GuiActivator.getAudioNotifier().setMute(false);
}
else
{
updateMuteButton(true);
GuiActivator.getAudioNotifier().setMute(true);
}
}
}
/**
* Handles the <tt>ActionEvent</tt> triggered when user clicks on one of
* the buttons in this toolbar.
*/
public void mousePressed(MouseEvent e)
{
ToolBarButton button = (ToolBarButton) e.getSource();
button.setMousePressed(true);
}
/**
@ -365,20 +307,33 @@ public void pluginComponentAdded(PluginComponentEvent event)
.equals(Container.CONTAINER_MAIN_TOOL_BAR))
return;
Object constraints = UIServiceImpl
.getBorderLayoutConstraintsFromContainer(
pluginComponent.getConstraints());
int position = pluginComponent.getPositionIndex();
Component c = (Component)pluginComponent.getComponent();
Component c = (Component) pluginComponent.getComponent();
if (constraints != null)
this.add(c, constraints);
if (c == null)
return;
if (position > -1)
{
this.toolBar.add(c, position);
components.add(position, c);
}
else
this.add(c);
{
this.toolBar.add(c);
components.add(c);
}
pluginsTable.put(pluginComponent, c);
c.setPreferredSize(
new Dimension(DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT));
c.addComponentListener(this);
Object selectedValue = mainFrame.getContactListPanel()
.getContactList().getSelectedValue();
if(selectedValue instanceof MetaContact)
{
pluginComponent
@ -409,7 +364,9 @@ public void pluginComponentRemoved(PluginComponentEvent event)
return;
this.pluginsTable.remove(c);
this.remove((Component) c.getComponent());
this.components.remove(c);
this.toolBar.remove((Component) c.getComponent());
}
public void componentHidden(ComponentEvent e)
@ -421,29 +378,39 @@ public void componentHidden(ComponentEvent e)
*/
public void componentMoved(ComponentEvent e)
{
int compCount = this.getComponentCount();
int compCount = this.components.size();
int biggestY = 0;
int maxWidth = this.toolBar.getWidth();
int width = 0;
for (int i = 0; i < compCount; i ++)
{
Component c = this.getComponent(i);
if(c instanceof JButton)
JComponent c = (JComponent) this.components.get(i);
width += c.getWidth() + 10;
if (width < maxWidth)
{
moreButton.removeMenuItem(c);
}
else
{
if(c.getY() > biggestY)
biggestY = c.getY();
moreButton.addMenuItem(c);
}
}
this.setPreferredSize(
new Dimension(this.getWidth(), biggestY + DEFAULT_BUTTON_HEIGHT));
((JPanel)this.getParent()).revalidate();
((JPanel)this.getParent()).repaint();
if (moreButton.getItemsCount() > 0)
this.add(moreButton, BorderLayout.EAST);
else
this.remove(moreButton);
this.revalidate();
this.repaint();
}
public void componentResized(ComponentEvent e)
{}
{
}
public void componentShown(ComponentEvent e)
{}
@ -486,16 +453,6 @@ public void updateMuteButton(boolean isMute)
ImageLoader.QUICK_MENU_SOUND_OFF_ICON)));
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Image backgroundImage
= ImageLoader.getImage(ImageLoader.TOOL_BAR_BACKGROUND);
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), null);
}
private class ToolBarButton
extends JLabel
{
@ -503,11 +460,11 @@ private class ToolBarButton
private boolean isMouseOver = false;
public ToolBarButton(String text, Image iconImage)
private boolean isMousePressed = false;
public ToolBarButton(Image iconImage)
{
super( "<html><center>" + text + "</center></html>",
new ImageIcon(iconImage),
JLabel.CENTER);
super(new ImageIcon(iconImage));
this.setFont(getFont().deriveFont(Font.BOLD, 10f));
this.setForeground(new Color(
@ -523,26 +480,209 @@ public void setMouseOver(boolean isMouseOver)
this.repaint();
}
public void setMousePressed(boolean isMousePressed)
{
this.isMousePressed = isMousePressed;
this.repaint();
}
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
AntialiasingManager.activateAntialiasing(g2);
super.paintComponent(g2);
Color color = null;
g2.setStroke(new BasicStroke(1.5f));
if(isMouseOver)
{
color = new Color(
GuiActivator.getResources()
.getColor("toolbarRolloverBackground"));
g2.setColor(color);
g2.setColor(new Color(0x646464));
g2.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 2, 8, 8);
}
if (isMousePressed)
{
color = new Color(
GuiActivator.getResources().getColor("toolbarBackground"));
if (isMouseOver)
g.drawRoundRect(0, 0, this.getWidth() - 1,
this.getHeight() - 3, 5, 5);
g2.setColor(new Color( color.getRed(),
color.getGreen(),
color.getBlue(),
100));
g2.fillRoundRect(0, 0, getWidth() - 1, getHeight() - 2, 8, 8);
}
super.paintComponent(g2);
}
public Action getAction()
{
return null;
}
}
public void mouseClicked(MouseEvent e)
{
JLabel button = (JLabel) e.getSource();
String buttonName = button.getName();
if (buttonName.equals("add"))
{
Action a = new AddContactAction();
a.putValue(Action.NAME, button.getToolTipText());
a.actionPerformed(null);
}
else if (buttonName.equals("config"))
{
configDialog = GuiActivator.getUIService()
.getExportedWindow(ExportedWindow.CONFIGURATION_WINDOW);
configDialog.setVisible(true);
}
else if (buttonName.equals("search"))
{
ContactList contactList = mainFrame.getContactListPanel()
.getContactList();
ContactListModel listModel
= (ContactListModel) contactList.getModel();
Object selectedObject = null;
int currentlySelectedIndex = contactList.getSelectedIndex();
if(currentlySelectedIndex != -1)
{
selectedObject
= listModel.getElementAt(currentlySelectedIndex);
}
if(ConfigurationManager.isShowOffline())
{
button.setText(
"<html><center>"
+ Messages.getI18NString("showOffline").getText()
+ "</center></html>");
button.setIcon(new ImageIcon(ImageLoader.getImage(
ImageLoader.QUICK_MENU_SHOW_OFFLINE_ICON)));
button.setToolTipText(Messages
.getI18NString("showOfflineContacts").getText());
}
else
{
button.setText(
"<html><center>"
+ Messages.getI18NString("hideOffline").getText()
+ "</center></html>");
button.setIcon(new ImageIcon(ImageLoader.getImage(
ImageLoader.QUICK_MENU_HIDE_OFFLINE_ICON)));
button.setToolTipText(Messages
.getI18NString("hideOfflineContacts").getText());
}
contactList.setShowOffline(!ConfigurationManager.isShowOffline());
if (selectedObject != null)
{
if (selectedObject instanceof MetaContact)
{
contactList.setSelectedIndex(
listModel.indexOf((MetaContact) selectedObject));
}
else
{
contactList.setSelectedIndex(
listModel.indexOf(
(MetaContactGroup) selectedObject));
}
}
}
else if (buttonName.equals("info"))
{
Object selectedValue = mainFrame.getContactListPanel()
.getContactList().getSelectedValue();
if (selectedValue == null
|| !(selectedValue instanceof MetaContact))
{
AboutWindow aboutWindow = new AboutWindow();
aboutWindow.pack();
aboutWindow.setLocation(
Toolkit.getDefaultToolkit().getScreenSize().width / 2
- aboutWindow.getWidth() / 2,
Toolkit.getDefaultToolkit().getScreenSize().height / 2
- aboutWindow.getHeight() / 2);
aboutWindow.setVisible(true);
}
else
{
MetaContact selectedMetaContact =
(MetaContact) selectedValue;
OperationSetWebContactInfo wContactInfo = null;
Iterator protocolContacts = selectedMetaContact.getContacts();
while(protocolContacts.hasNext())
{
Contact protoContact = (Contact) protocolContacts.next();
wContactInfo = mainFrame.getWebContactInfoOpSet(
protoContact.getProtocolProvider());
if(wContactInfo != null)
break;
}
if(wContactInfo != null)
{
Contact defaultContact = selectedMetaContact
.getDefaultContact();
GuiActivator.getBrowserLauncher().openURL(
wContactInfo.getWebContactInfo(defaultContact)
.toString());
}
else
{
new ErrorDialog(mainFrame,
Messages.getI18NString("warning").getText(),
Messages.getI18NString("selectContactSupportingInfo")
.getText(),
ErrorDialog.WARNING).showDialog();
}
}
}
else if (buttonName.equals("sound"))
{
if(GuiActivator.getAudioNotifier().isMute())
{
updateMuteButton(false);
GuiActivator.getAudioNotifier().setMute(false);
}
else
{
updateMuteButton(true);
GuiActivator.getAudioNotifier().setMute(true);
}
}
else if (buttonName.equals("createGroup"))
{
CreateGroupDialog dialog = new CreateGroupDialog(mainFrame);
dialog.setVisible(true);
}
}
public void mouseEntered(MouseEvent e)
@ -559,46 +699,27 @@ public void mouseExited(MouseEvent e)
public void mouseReleased(MouseEvent e)
{
ToolBarButton button = (ToolBarButton) e.getSource();
button.setMousePressed(false);
}
private int calculateButtonWidth()
public void paintComponent(Graphics g)
{
int width = DEFAULT_BUTTON_WIDTH;
FontMetrics fontMetrics
= infoButton.getFontMetrics(infoButton.getFont());
int textWidth = fontMetrics.stringWidth(
Messages.getI18NString("info").getText());
if (textWidth > width)
width = textWidth;
textWidth = fontMetrics.stringWidth(
Messages.getI18NString("settings").getText());
if (textWidth > width)
width = textWidth;
textWidth = fontMetrics.stringWidth(
Messages.getI18NString("showOffline").getText());
if (textWidth > width)
width = textWidth;
super.paintComponent(g);
textWidth = fontMetrics.stringWidth(
Messages.getI18NString("add").getText());
if (backgroundImage != null)
{
Graphics2D g2 = (Graphics2D) g;
if (textWidth > width)
width = textWidth;
g2.setPaint(texture);
textWidth = fontMetrics.stringWidth(
Messages.getI18NString("sound").getText());
g2.fillRect(0, 2, this.getWidth(), this.getHeight() - 2);
if (textWidth > width)
width = textWidth;
g2.setColor(new Color(
GuiActivator.getResources()
.getColor("desktopBackgroundColor")));
// Return the width by
return width + 5;
g2.drawRect(0, this.getHeight() - 2, this.getWidth(), 2);
}
}
}

@ -0,0 +1,199 @@
/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.impl.gui.main.menus;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import net.java.sip.communicator.impl.gui.i18n.*;
import net.java.sip.communicator.impl.gui.utils.*;
import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.gui.Container;
public class MoreButton
extends JLabel
implements PluginComponent,
MouseListener,
FocusListener
{
private Image iconImage;
private boolean isMouseOver = false;
private JPopupMenu menu = new JPopupMenu();
private Hashtable menuItemsTable = new Hashtable();
public MoreButton()
{
super(new ImageIcon(ImageLoader.getImage(ImageLoader.MORE_BUTTON)),
JLabel.CENTER);
this.setVerticalTextPosition(SwingConstants.BOTTOM);
this.setHorizontalTextPosition(SwingConstants.CENTER);
this.setToolTipText(Messages.getI18NString("more").getText());
this.addMouseListener(this);
this.addFocusListener(this);
}
public Object getComponent()
{
return this;
}
public String getConstraints()
{
return null;
}
public Container getContainer()
{
return Container.CONTAINER_MAIN_TOOL_BAR;
}
public String getName()
{
return this.getText();
}
public void setMouseOver(boolean isMouseOver)
{
this.isMouseOver = isMouseOver;
this.repaint();
}
public void setCurrentContact(MetaContact metaContact)
{
}
public void setCurrentContactGroup(MetaContactGroup metaGroup)
{
}
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
this.setMouseOver(true);
}
public void mouseExited(MouseEvent e)
{
this.setMouseOver(false);
}
public void mousePressed(MouseEvent e)
{
requestFocus();
if (!menu.isVisible())
{
menu.setLocation(
getLocationOnScreen().x,
getLocationOnScreen().y + getHeight());
menu.setVisible(true);
}
else
menu.setVisible(false);
}
public void mouseReleased(MouseEvent e)
{
}
/**
* Specifies the position of this component in the container, where it
* will be added.
* @return 0 to indicate the first position in the container.
*/
public int getPositionIndex()
{
return -1;
}
public void focusGained(FocusEvent arg0)
{
}
public void focusLost(FocusEvent arg0)
{
menu.setVisible(false);
}
public void addMenuItem(final JComponent c)
{
String name = c.getToolTipText();
if (!this.containsItem(name))
{
JMenuItem item = new JMenuItem(name);
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MouseEvent mouseEvent
= new MouseEvent(c,
MouseEvent.MOUSE_PRESSED,
System.currentTimeMillis(),
MouseEvent.BUTTON1,
c.getX(),
c.getY(),
1,
false);
MouseListener[] listeners = c.getMouseListeners();
for (int i = 0; i < listeners.length; i++)
{
MouseListener l = listeners[i];
l.mousePressed(mouseEvent);
}
}
});
this.menu.add(item);
this.menuItemsTable.put(name, item);
}
}
public void removeMenuItem(JComponent c)
{
String name = c.getToolTipText();
Component item = (Component) this.menuItemsTable.get(name);
if (item != null)
{
this.menu.remove(item);
menuItemsTable.remove(name);
}
}
public int getItemsCount()
{
return menuItemsTable.size();
}
public boolean containsItem(String name)
{
return menuItemsTable.containsKey(name);
}
public boolean isNativeComponent()
{
return false;
}
}

@ -45,6 +45,7 @@ public AccountStatusPanel(MainFrame mainFrame)
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
this.setOpaque(false);
this.accountNameLabel.setOpaque(false);
this.rightPanel.setOpaque(false);
@ -182,6 +183,8 @@ public void registrationStateChanged(RegistrationStateChangeEvent evt)
protected void paintComponent(Graphics g)
{
AntialiasingManager.activateAntialiasing(g);
super.paintComponent(g);
Color bgColor = new Color(

@ -485,7 +485,7 @@ private void updateGlobalStatus()
Iterator pProviders = mainFrame.getProtocolProviders();
boolean isProtocolHidden;
System.out.println("PROTOCOL PROVIDERRRSSSSSSSSSSSSSSSSSSS ============" + pProviders.hasNext());
while (pProviders.hasNext())
{
ProtocolProviderService protocolProvider

@ -50,6 +50,8 @@ public class ConfigurationManager
private static boolean isTransparentWindowEnabled;
private static boolean isWindowDecorated;
private static ConfigurationService configService
= GuiActivator.getConfigurationService();
@ -265,6 +267,25 @@ public static void loadGuiConfigurations()
= new Integer(windowTransparencyString).intValue();
}
// Load the "isWindowDecorated" property.
String isWindowDecoratedProperty
= "net.java.sip.communicator.impl.gui.isWindowDecorated";
String isWindowDecoratedString
= configService.getString(isWindowDecoratedProperty);
if(isWindowDecoratedString == null)
isWindowDecoratedString =
GuiActivator.getResources().
getSettingsString(isWindowDecoratedProperty);
if(isWindowDecoratedString != null
&& isWindowDecoratedString.length() > 0)
{
isWindowDecorated
= new Boolean(isWindowDecoratedString).booleanValue();
}
// Load the "lastContactParent" property.
lastContactParent = configService.getString(
"net.java.sip.communicator.impl.gui.addcontact.lastContactParent");
@ -392,6 +413,17 @@ public static boolean isHistoryShown()
return isHistoryShown;
}
/**
* Returns <code>true</code> if the "isWindowDecorated" property is
* true, otherwise - returns <code>false</code>..
* @return <code>true</code> if the "isWindowDecorated" property is
* true, otherwise - returns <code>false</code>.
*/
public static boolean isWindowDecorated()
{
return isWindowDecorated;
}
/**
* Return the "sendMessageCommand" property that was saved previously
* through the <tt>ConfigurationService</tt>. Indicates to the user

@ -196,6 +196,14 @@ public class Constants
= new Color(GuiActivator.getResources()
.getColor("contactListGroupRowColor"));
/**
* The end color used to paint a gradient mouse over background of some
* components.
*/
public static final Color CONTACT_LIST_GROUP_BG_GRADIENT_COLOR
= new Color(GuiActivator.getResources().
getColor("contactListGroupGradientColor"));
/*
* ======================================================================
* --------------------------- FONT CONSTANTS ---------------------------

@ -55,6 +55,42 @@ public class ImageLoader {
public static final ImageID BUTTON_ROLLOVER
= new ImageID("BUTTON_ROLLOVER");
/**
* The background image of a button.
*/
public static final ImageID BUTTON_BG_LEFT
= new ImageID("BUTTON_BG_LEFT");
/**
* The background image of a button.
*/
public static final ImageID BUTTON_BG_RIGHT
= new ImageID("BUTTON_BG_RIGHT");
/**
* The background image of a button.
*/
public static final ImageID BUTTON_BG_MIDDLE
= new ImageID("BUTTON_BG_MIDDLE");
/**
* The background image of a button.
*/
public static final ImageID BUTTON_ROLLOVER_BG_LEFT
= new ImageID("BUTTON_ROLLOVER_BG_LEFT");
/**
* The background image of a button.
*/
public static final ImageID BUTTON_ROLLOVER_BG_RIGHT
= new ImageID("BUTTON_ROLLOVER_BG_RIGHT");
/**
* The background image of a button.
*/
public static final ImageID BUTTON_ROLLOVER_BG_MIDDLE
= new ImageID("BUTTON_ROLLOVER_BG_MIDDLE");
/**
* The pressed toggle button background image.
*/
@ -214,6 +250,12 @@ public class ImageLoader {
public static final ImageID MAIN_WINDOW_BACKGROUND
= new ImageID("MAIN_WINDOW_BACKGROUND");
/**
* The background of the main window and chat window.
*/
public static final ImageID MORE_BUTTON
= new ImageID("MORE_BUTTON");
/**
* The icon on the "Add contact" button in the <tt>QuickMenu</tt>.
*/
@ -627,6 +669,18 @@ public class ImageLoader {
public static final ImageID WINDOW_TITLE_BAR_BG
= new ImageID("WINDOW_TITLE_BAR_BG");
/**
* Title bar background image.
*/
public static final ImageID QUICK_MENU_ABOUT_ICON
= new ImageID("QUICK_MENU_ABOUT_ICON");
/**
* Title bar background image.
*/
public static final ImageID QUICK_MENU_CREATE_GROUP_ICON
= new ImageID("QUICK_MENU_CREATE_GROUP_ICON");
// ///////////////////// Edit Text Toolbar icons //////////////////////////
/**

@ -131,6 +131,12 @@ public class Container
public static final Container CONTAINER_CALL_BUTTONS_PANEL
= new Container("CONTAINER_CALL_BUTTONS_PANEL");
/**
* Status bar container.
*/
public static final Container CONTAINER_STATUS_BAR
= new Container("CONTAINER_STATUS_BAR");
/*
* Constraints
*/
@ -214,4 +220,4 @@ else if (obj instanceof String)
else
return false;
}
}
}

@ -6,6 +6,7 @@
*/
package net.java.sip.communicator.service.gui;
import java.awt.*;
import java.util.*;
import net.java.sip.communicator.service.protocol.*;
@ -67,6 +68,37 @@ public interface UIService
*/
public void setVisible(boolean visible);
/**
* Returns the current location of the main application window. The returned
* point is the top left corner of the window.
*
* @return The top left corner coordinates of the main application window.
*/
public Point getLocation();
/**
* Locates the main application window to the new x and y coordinates.
*
* @param x The new x coordinate.
* @param y The new y coordinate.
*/
public void setLocation(int x, int y);
/**
* Returns the size of the main application window.
*
* @return the size of the main application window.
*/
public Dimension getSize();
/**
* Sets the size of the main application window.
*
* @param width The width of the window.
* @param height The height of the window.
*/
public void setSize(int width, int height);
/**
* Minimizes the main application window.
*/
@ -274,4 +306,4 @@ public SecurityAuthority getDefaultSecurityAuthority(
* <code>false</code> otherwise.
*/
public boolean isContainerSupported(Container containderID);
}
}
Loading…
Cancel
Save