diff --git a/resources/config/defaults.properties b/resources/config/defaults.properties index 2f2c8b9c0..a30aa327c 100644 --- a/resources/config/defaults.properties +++ b/resources/config/defaults.properties @@ -22,6 +22,8 @@ preferredAccountWizard= tabOverlap=10 mainWindowWidth=250 mainWindowHeight=600 +minMainWindowWidth=100 +minMainWindowHeight=400 chatWindowWidth=500 chatWindowHeight=400 logoBarWidth=0 diff --git a/resources/images/images.properties b/resources/images/images.properties index 0cd7ed6f2..fe8c123f7 100644 --- a/resources/images/images.properties +++ b/resources/images/images.properties @@ -182,6 +182,8 @@ LEAVE_ICON=resources/images/impl/gui/common/leave.png STATUS_SEPARATOR_ICON=resources/images/impl/gui/common/statusSeparator.png +MORE_BUTTON=resources/images/impl/gui/buttons/moreButton.png + TOOL_BAR_BACKGROUND=resources/images/impl/gui/common/toolbarBackground.png MENU_BACKGROUND=resources/images/impl/gui/common/menuBackground.png WINDOW_TITLE_BAR=resources/images/impl/gui/common/windowTitleBarBackground.png diff --git a/resources/images/impl/gui/buttons/moreButton.png b/resources/images/impl/gui/buttons/moreButton.png new file mode 100644 index 000000000..0d4d6dd92 Binary files /dev/null and b/resources/images/impl/gui/buttons/moreButton.png differ diff --git a/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java b/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java index c316fec3a..398b4db53 100644 --- a/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java +++ b/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java @@ -100,6 +100,8 @@ public void loadApplicationGui() this.mainFrame = new MainFrame(); + this.mainFrame.initBounds(); + GuiActivator.getUIService().registerExportedWindow(mainFrame); this.loginManager = new LoginManager(mainFrame); diff --git a/src/net/java/sip/communicator/impl/gui/customcontrols/SIPCommMenu.java b/src/net/java/sip/communicator/impl/gui/customcontrols/SIPCommMenu.java index e9c1eb2f9..553a76dd1 100644 --- a/src/net/java/sip/communicator/impl/gui/customcontrols/SIPCommMenu.java +++ b/src/net/java/sip/communicator/impl/gui/customcontrols/SIPCommMenu.java @@ -139,13 +139,5 @@ public void paintComponent(Graphics g) AntialiasingManager.activateAntialiasing(g2); super.paintComponent(g2); - - g2.setStroke(new BasicStroke(1.5f)); - - g2.setColor(new Color(0x646464)); - - if (isMouseOver) - g.drawRoundRect(0, 0, this.getWidth() - 1, - this.getHeight() - 3, 5, 5); } } diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java index b1688fd45..ad763823e 100755 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -132,8 +132,6 @@ public MainFrame() this.addWindowListener(new MainFrameWindowAdapter()); - this.initBounds(); - this.initTitleFont(); String applicationName @@ -195,13 +193,20 @@ private void init() /** * Sets frame size and position. */ - private void initBounds() + public void initBounds() { int width = GuiActivator.getResources().getSettingsInt("mainWindowWidth"); int height = GuiActivator.getResources().getSettingsInt("mainWindowHeight"); + int minWidth + = GuiActivator.getResources().getSettingsInt("minMainWindowWidth"); + int minHeight + = GuiActivator.getResources().getSettingsInt("minMainWindowHeight"); + + this.setMinimumSize(new Dimension(minWidth, minHeight)); + this.setSize(width, height); this.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java b/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java index 3db370e5d..f0c5c9c51 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java @@ -53,19 +53,20 @@ public AccountStatusPanel(MainFrame mainFrame) { super(new BorderLayout(10, 0)); + this.mainFrame = mainFrame; + + statusComboBox = new GlobalStatusSelectorBox(mainFrame); + if (ConfigurationManager.isTransparentWindowEnabled()) this.setUI(new SIPCommOpaquePanelUI()); - this.mainFrame = mainFrame; - this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); this.setOpaque(false); this.accountNameLabel.setOpaque(false); + this.statusComboBox.setOpaque(false); this.rightPanel.setOpaque(false); - statusComboBox = new GlobalStatusSelectorBox(mainFrame); - // Align status combo box with account name field. statusMenuBar.setLayout(new BorderLayout(0, 0)); statusComboBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java index a097037c2..a2fe6c791 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java @@ -40,6 +40,10 @@ public class GlobalStatusSelectorBox extends StatusSelectorMenu implements ActionListener { + private int IMAGE_INDENT = 10; + + private Image arrowImage = ImageLoader.getImage(ImageLoader.MORE_BUTTON); + private Logger logger = Logger.getLogger( GlobalStatusSelectorBox.class.getName()); @@ -752,4 +756,17 @@ public String getLastStatusString(ProtocolProviderService protocolProvider) return lastStatus; } + + /** + * Overwrites the paintComponent(Graphics g) method in order to + * provide a new look and the mouse moves over this component. + */ + public void paintComponent(Graphics g) + { + super.paintComponent(g); + + g.drawImage(arrowImage, + this.getWidth() - arrowImage.getWidth(null) - IMAGE_INDENT, + (this.getHeight() - arrowImage.getHeight(null))/2, null); + } }