diff options
author | Yana Stamcheva <yana@jitsi.org> | 2009-04-29 16:11:33 +0000 |
---|---|---|
committer | Yana Stamcheva <yana@jitsi.org> | 2009-04-29 16:11:33 +0000 |
commit | bfce580dcf8843f5b9b539ae617ab293ef513057 (patch) | |
tree | 80ca837178b58db92c27d8eefbb5750cc4a40cb7 /src/net/java/sip | |
parent | a5c9522ee3a643e70b8fc5f18100839a67e125bf (diff) | |
download | jitsi-bfce580dcf8843f5b9b539ae617ab293ef513057.zip jitsi-bfce580dcf8843f5b9b539ae617ab293ef513057.tar.gz jitsi-bfce580dcf8843f5b9b539ae617ab293ef513057.tar.bz2 |
More smiley related work (some alignment and comments). Addressing issue #500 Corrupt smiley images.
Diffstat (limited to 'src/net/java/sip')
-rw-r--r-- | src/net/java/sip/communicator/impl/gui/main/chat/SmileysSelectorBox.java | 59 |
1 files changed, 53 insertions, 6 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/SmileysSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/chat/SmileysSelectorBox.java index 3c6cb5f..e7fd912 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/SmileysSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/SmileysSelectorBox.java @@ -43,6 +43,7 @@ public class SmileysSelectorBox = new GridBagConstraints(); private final JLabel smileyTextLabel = new JLabel(); + private final JLabel smileyDescriptionLabel = new JLabel(); /** * Creates an instance of this <tt>SmileysSelectorBox</tt> and initializes @@ -80,15 +81,24 @@ public class SmileysSelectorBox } smileyTextLabel.setPreferredSize(new Dimension(50, 25)); - smileyTextLabel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); + smileyTextLabel.setBorder( + BorderFactory.createEmptyBorder(0, 0, 0, 5)); + smileyDescriptionLabel.setBorder( + BorderFactory.createEmptyBorder(0, 5, 0, 0)); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.gridx = 0; gridBagConstraints.gridy = gridRowCount; gridBagConstraints.gridwidth = gridColCount; - popupMenu.add(smileyTextLabel, gridBagConstraints); + popupMenu.add(smileyDescriptionLabel, gridBagConstraints); + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.gridx = gridColCount/2; + gridBagConstraints.gridy = gridRowCount; + + smileyTextLabel.setHorizontalAlignment(SwingConstants.RIGHT); + popupMenu.add(smileyTextLabel, gridBagConstraints); this.add(selectorBox); } @@ -171,7 +181,7 @@ public class SmileysSelectorBox chatWritePanel.getEditorPane().requestFocus(); - smileyTextLabel.setText(""); + clearMouseOverEffects(smileyItem, smiley); } /** @@ -195,6 +205,9 @@ public class SmileysSelectorBox { } + /** + * A custom menu item, which paints round border over selection. + */ private class SmileyMenuItem extends JMenuItem { public SmileyMenuItem(Icon imageIcon) @@ -204,19 +217,35 @@ public class SmileysSelectorBox } } + /** + * Changes the static image of the underlying smiley with a dynamic one. + * Also shows the description and smiley string in the description area. + */ public void mouseEntered(MouseEvent e) { JMenuItem smileyItem = (JMenuItem) e.getSource(); Smiley smiley = smileysList.get(smileyItem); - smileyTextLabel.setText(smiley.getDescription() - + " - " + smiley.getSmileyStrings()[0]); + String smileyIconHtml = "<HTML><IMG SRC=\"" + + ImageLoader.getSmiley(smiley.getDefaultString()).getImagePath() + + "\"></IMG></HTML>"; + smileyItem.setIcon(null); + smileyItem.setText(smileyIconHtml); + + smileyDescriptionLabel.setText(smiley.getDescription()); + smileyTextLabel.setText(smiley.getSmileyStrings()[0]); } + /** + * Clears all mouse over effects when the mouse has exited the smiley area. + */ public void mouseExited(MouseEvent e) { - smileyTextLabel.setText(""); + JMenuItem smileyItem = (JMenuItem) e.getSource(); + Smiley smiley = smileysList.get(smileyItem); + + this.clearMouseOverEffects(smileyItem, smiley); } public void mouseClicked(MouseEvent e) @@ -227,4 +256,22 @@ public class SmileysSelectorBox public void mouseReleased(MouseEvent e) {} + + /** + * Clears all mouse over effects for the given smiley item. This method + * should be invoked when the mouse has exited the smiley area or when + * a smiley has been selected and the popup menu is closed. + * + * @param smileyItem the item for which we clear mouse over effects. + */ + private void clearMouseOverEffects(JMenuItem smileyItem, Smiley smiley) + { + ImageIcon imageIcon = + new ImageIcon(ImageLoader.getImage(smiley.getImageID())); + + smileyItem.setIcon(imageIcon); + smileyItem.setText(null); + smileyTextLabel.setText(""); + smileyDescriptionLabel.setText(""); + } } |