Skip to content

Commit b994406

Browse files
authored
Merge pull request #25 from codenameone/master
Update from CN1
2 parents 839f5fb + a7a180c commit b994406

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2282
-263
lines changed

CodenameOne/src/com/codename1/components/AudioRecorderComponent.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import com.codename1.ui.Sheet;
3737
import com.codename1.ui.events.ActionEvent;
3838
import com.codename1.ui.events.ActionListener;
39+
import com.codename1.ui.events.ActionSource;
3940
import com.codename1.ui.geom.Dimension;
4041
import com.codename1.ui.layouts.BorderLayout;
4142
import com.codename1.ui.layouts.BoxLayout;
@@ -50,7 +51,7 @@
5051
* @author shannah
5152
* @since 7.0
5253
*/
53-
public class AudioRecorderComponent extends Container {
54+
public class AudioRecorderComponent extends Container implements ActionSource {
5455
private Media media;
5556
private Button record, pause, done;
5657
private Label recordingInProgress, recordingOff;

CodenameOne/src/com/codename1/components/ButtonList.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.codename1.ui.RadioButton;
2929
import com.codename1.ui.events.ActionEvent;
3030
import com.codename1.ui.events.ActionListener;
31+
import com.codename1.ui.events.ActionSource;
3132
import com.codename1.ui.events.DataChangedListener;
3233
import com.codename1.ui.events.SelectionListener;
3334
import com.codename1.ui.layouts.Layout;
@@ -88,7 +89,7 @@
8889
* @author Steve Hannah
8990
* @since 6.0
9091
*/
91-
public abstract class ButtonList extends Container implements DataChangedListener, SelectionListener, ActionListener {
92+
public abstract class ButtonList extends Container implements DataChangedListener, SelectionListener, ActionListener, ActionSource {
9293
private ButtonGroup group;
9394
private ListModel model;
9495
private EventDispatcher actionListeners = new EventDispatcher();

CodenameOne/src/com/codename1/components/InteractionDialog.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ private Container getLayeredPane(Form f) {
262262
if(formMode) {
263263
c = (Container)f.getFormLayeredPane(InteractionDialog.class, true);
264264
} else {
265-
c = (Container)f.getLayeredPane(InteractionDialog.class, false);
265+
c = (Container)f.getLayeredPane(InteractionDialog.class, true);
266266
}
267267
if (!(c.getLayout() instanceof LayeredLayout)) {
268268
c.setLayout(new LayeredLayout());
@@ -623,12 +623,18 @@ public void actionPerformed(ActionEvent evt) {
623623
* @param c the context component which is used to position the dialog and can also be pointed at
624624
*/
625625
public void showPopupDialog(Component c) {
626+
Form f = c== null ? null : c.getComponentForm();
627+
if (f != null) {
628+
if (!formMode && !f.getContentPane().contains(c)) {
629+
setFormMode(true);
630+
}
631+
}
626632
disposed = false;
627633
getUnselectedStyle().setOpacity(255);
628634
Rectangle componentPos = c.getSelectedRect();
629635
componentPos.setX(componentPos.getX() - c.getScrollX());
630636
componentPos.setY(componentPos.getY() - c.getScrollY());
631-
637+
setOwner(c);
632638
showPopupDialog(componentPos);
633639
}
634640

CodenameOne/src/com/codename1/components/MultiButton.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.codename1.ui.Label;
3232
import com.codename1.ui.RadioButton;
3333
import com.codename1.ui.events.ActionListener;
34+
import com.codename1.ui.events.ActionSource;
3435
import com.codename1.ui.layouts.BorderLayout;
3536
import com.codename1.ui.layouts.BoxLayout;
3637
import com.codename1.ui.layouts.FlowLayout;
@@ -49,7 +50,7 @@
4950
* @see SpanButton
5051
* @author Shai Almog
5152
*/
52-
public class MultiButton extends Container {
53+
public class MultiButton extends Container implements ActionSource {
5354
private Label firstRow = new Label("MultiButton");
5455
private Label secondRow = new Label();
5556
private Label thirdRow = new Label();

CodenameOne/src/com/codename1/components/OnOffSwitch.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.codename1.ui.animations.Motion;
3333
import com.codename1.ui.events.ActionEvent;
3434
import com.codename1.ui.events.ActionListener;
35+
import com.codename1.ui.events.ActionSource;
3536
import com.codename1.ui.geom.Dimension;
3637
import com.codename1.ui.layouts.BoxLayout;
3738
import com.codename1.ui.plaf.Style;
@@ -51,7 +52,7 @@
5152
* @author Shai Almog
5253
* @deprecated Use new {@link Switch} class instead as it conforms to the latest platform looks and feels.
5354
*/
54-
public class OnOffSwitch extends Container {
55+
public class OnOffSwitch extends Container implements ActionSource {
5556
private String on = "ON";
5657
private String off = "OFF";
5758
private boolean iosMode;

CodenameOne/src/com/codename1/components/ScaleImageLabel.java

+53
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
*/
4545
public class ScaleImageLabel extends Label {
4646

47+
private int preferredH = -1;
48+
private int preferredW = -1;
49+
4750
/**
4851
* Default constructor
4952
*/
@@ -223,5 +226,55 @@ public String setPropertyValue(String name, Object value) {
223226
}
224227
return super.setPropertyValue(name, value);
225228
}
229+
230+
@Override
231+
public void setPreferredH(int preferredH) {
232+
this.preferredH = preferredH;
233+
}
234+
235+
@Override
236+
public void setPreferredW(int preferredW) {
237+
this.preferredW = preferredW;
238+
}
239+
240+
@Override
241+
public int getPreferredH() {
242+
if (preferredH > 0) {
243+
return preferredH;
244+
}
245+
if (preferredW > 0) {
246+
Image i = getIcon();
247+
if (i != null) {
248+
if (preferredW < i.getWidth()) {
249+
return (int)(i.getHeight() * preferredW / (double)i.getWidth());
250+
}
251+
}
252+
}
253+
return super.getPreferredH();
254+
}
255+
256+
@Override
257+
public int getPreferredW() {
258+
if (preferredW > 0) {
259+
return preferredW;
260+
}
261+
if (preferredW > 0) {
262+
Image i = getIcon();
263+
if (i != null) {
264+
if (preferredH < i.getHeight()) {
265+
return (int)(i.getWidth() * preferredH / (double)i.getHeight());
266+
}
267+
}
268+
}
269+
return super.getPreferredW();
270+
}
271+
272+
273+
274+
275+
276+
277+
278+
226279

227280
}

CodenameOne/src/com/codename1/components/SignatureComponent.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.codename1.ui.animations.Animation;
3535
import com.codename1.ui.events.ActionEvent;
3636
import com.codename1.ui.events.ActionListener;
37+
import com.codename1.ui.events.ActionSource;
3738
import com.codename1.ui.geom.Dimension;
3839
import com.codename1.ui.geom.GeneralPath;
3940
import com.codename1.ui.geom.Rectangle;
@@ -69,7 +70,7 @@
6970
* @author shannah
7071
* @since 3.4
7172
*/
72-
public class SignatureComponent extends Container {
73+
public class SignatureComponent extends Container implements ActionSource {
7374

7475
private Image signatureImage;
7576
private final Button lead;

CodenameOne/src/com/codename1/components/SpanButton.java

+21-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.codename1.ui.Image;
3131
import com.codename1.ui.TextArea;
3232
import com.codename1.ui.events.ActionListener;
33+
import com.codename1.ui.events.ActionSource;
3334
import com.codename1.ui.geom.Dimension;
3435
import com.codename1.ui.layouts.BorderLayout;
3536
import com.codename1.ui.layouts.BoxLayout;
@@ -47,7 +48,7 @@
4748
*
4849
* @author Shai Almog
4950
*/
50-
public class SpanButton extends Container {
51+
public class SpanButton extends Container implements ActionSource {
5152

5253
private Button actualButton;
5354
private TextArea text;
@@ -84,6 +85,7 @@ public SpanButton(String txt) {
8485
text.setEditable(false);
8586
text.setFocusable(false);
8687
text.setActAsLabel(true);
88+
setFocusable(true);
8789
removeBackground(text.getUnselectedStyle());
8890
removeBackground(text.getSelectedStyle());
8991
removeBackground(text.getPressedStyle());
@@ -207,6 +209,24 @@ public Image getIcon() {
207209
return actualButton.getIcon();
208210
}
209211

212+
/**
213+
* Binds long press listener to button events.
214+
* @param l
215+
* @since 7.0
216+
*/
217+
public void addLongPressListener(ActionListener l) {
218+
actualButton.addLongPressListener(l);
219+
}
220+
221+
/**
222+
* Unbinds long press listener to button events.
223+
* @param l
224+
* @since 7.0
225+
*/
226+
public void removeLongPressListener(ActionListener l) {
227+
actualButton.removeLongPressListener(l);
228+
}
229+
210230
/**
211231
* Binds an action listener to button events
212232
*

0 commit comments

Comments
 (0)