mouseReleasedOutside available for more controllers that needs it (other than TextField)

This commit is contained in:
Gabriel Salvador 2023-07-05 11:03:32 +01:00
parent 5d71157755
commit 8f79b27cb1
24 changed files with 22 additions and 27 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -1,5 +1,8 @@
## this is a fork of the original controlP5 library by Andreas Schlegel ## this is a fork of the original controlP5 library by Andreas Schlegel
## it provides a pom.xml for maven and can be used as a dependency in maven projects ## My changes include:
- it provides a pom.xml for maven and can be used as a dependency in maven projects
- Tweeks in the getting focus/losing focus for custom controllers that extends the Controller class (See ReleasedOutsideListener.java Interface)

View File

@ -31,6 +31,7 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import controlP5.events.ReleasedOutsideListener;
import processing.core.PApplet; import processing.core.PApplet;
import processing.core.PFont; import processing.core.PFont;
import processing.core.PGraphics; import processing.core.PGraphics;
@ -583,7 +584,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
return false; return false;
} }
if ( theStatus == true ) { if ( theStatus == true ) {
if ( isInside ) { if ( inside() ) {
isMousePressed = true; isMousePressed = true;
if ( !cp5.isAltDown( ) ) { if ( !cp5.isAltDown( ) ) {
mousePressed( ); mousePressed( );
@ -629,7 +630,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
cp5.getControlBroadcaster( ).invokeAction( new CallbackEvent( this , ACTION_RELEASE_OUTSIDE ) ); cp5.getControlBroadcaster( ).invokeAction( new CallbackEvent( this , ACTION_RELEASE_OUTSIDE ) );
callListener( ACTION_RELEASE_OUTSIDE ); callListener( ACTION_RELEASE_OUTSIDE );
} }
if ( this instanceof Textfield ) { if ( this instanceof ReleasedOutsideListener) {
mouseReleasedOutside( ); mouseReleasedOutside( );
onReleaseOutside( ); onReleaseOutside( );
callListener( ACTION_RELEASE_OUTSIDE ); callListener( ACTION_RELEASE_OUTSIDE );
@ -1216,7 +1217,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
* *
* @param KeyEvent theEvent * @param KeyEvent theEvent
*/ */
@ControlP5.Invisible public void keyEvent( final KeyEvent theEvent ) { public void keyEvent( final KeyEvent theEvent ) {
} }
/** /**

View File

@ -31,6 +31,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import controlP5.events.ReleasedOutsideListener;
import processing.core.PApplet; import processing.core.PApplet;
import processing.core.PFont; import processing.core.PFont;
import processing.core.PGraphics; import processing.core.PGraphics;
@ -48,7 +49,7 @@ import processing.event.KeyEvent;
* @example controllers/ControlP5textfield * @example controllers/ControlP5textfield
* @nosuperclasses Controller Controller * @nosuperclasses Controller Controller
*/ */
public class Textfield extends Controller< Textfield > { public class Textfield extends Controller< Textfield > implements ReleasedOutsideListener {
/* TODO textspacing does not work properly for bitfonts sometimes first row of pixels in a /* TODO textspacing does not work properly for bitfonts sometimes first row of pixels in a
* bitfont texture gets cut off */ * bitfont texture gets cut off */
@ -269,7 +270,7 @@ public class Textfield extends Controller< Textfield > {
setFocus( true ); setFocus( true );
} }
@Override protected void mouseReleasedOutside( ) { @Override public void mouseReleasedOutside( ) {
if ( isKeepFocus == false ) { if ( isKeepFocus == false ) {
isTexfieldActive = isActive = false; isTexfieldActive = isActive = false;
} }

View File

@ -0,0 +1,6 @@
package controlP5.events;
public interface ReleasedOutsideListener {
public void mouseReleasedOutside( ) ;
}

View File

@ -1,9 +1,6 @@
package sketch; package sketch;
import controlP5.ControlEvent; import controlP5.*;
import controlP5.ControlP5;
import controlP5.RadioButton;
import controlP5.TextfieldMultiline;
import processing.core.PApplet; import processing.core.PApplet;
public class Sketch extends PApplet { public class Sketch extends PApplet {
@ -20,21 +17,8 @@ public class Sketch extends PApplet {
public void setup(){ public void setup(){
cp5 = new ControlP5(this); cp5 = new ControlP5(this);
RadioButton b = new RadioButton(cp5,"radioButton") Button b = new Button(cp5,"").setSize(100,100);
.setPosition(100,100) MultilineTextfield ml = new MultilineTextfield(cp5,"mlt");
.setSize(40,20)
.setColorForeground(color(120))
.setColorActive(color(255))
.setColorLabel(color(255))
.setItemsPerRow(3)
.setSpacingColumn(50)
.addItem("foo",1)
.addItem("bar",2)
.addItem("baz",3)
.activate(0)
;
b.plugTo(this,"radioButton");
} }

Binary file not shown.

Binary file not shown.

View File

@ -117,7 +117,6 @@ controlP5/ColorWheel$1.class
controlP5/FieldChangedListener$1.class controlP5/FieldChangedListener$1.class
controlP5/Slider2D$Slider2DView.class controlP5/Slider2D$Slider2DView.class
controlP5/TextfieldMultiline$MoveLeft.class controlP5/TextfieldMultiline$MoveLeft.class
controlP5/layout/LayoutBuilder.class
controlP5/ControlBroadcaster$EmptyController.class controlP5/ControlBroadcaster$EmptyController.class
controlP5/Chart$ChartViewLine.class controlP5/Chart$ChartViewLine.class
controlP5/Icon$IconImageView.class controlP5/Icon$IconImageView.class

View File

@ -18,6 +18,7 @@
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControllerProperty.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControllerProperty.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ColorPicker.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ColorPicker.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Tooltip.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Tooltip.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/events/ReleasedOutsideListener.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Group.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Group.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/CP.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/CP.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Tab.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Tab.java
@ -37,7 +38,6 @@
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlKey.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlKey.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlP5Base.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlP5Base.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Slider.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Slider.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/layout/LayoutBuilder.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/MultiList.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/MultiList.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControllerGroup.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControllerGroup.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Textfield.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Textfield.java
@ -74,6 +74,7 @@
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControllerView.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControllerView.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlWindowCanvas.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlWindowCanvas.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlTimer.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlTimer.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/MultilineTextfield.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlWindow.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlWindow.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlBroadcaster.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/ControlBroadcaster.java
/Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Pointer.java /Users/gabrielsalvador/Code/controlp5/src/main/java/controlP5/Pointer.java