Skip to content

Commit 0e285b3

Browse files
committed
Component::swapClasses call
1 parent dcbff1a commit 0e285b3

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

haxe/ui/core/Component.hx

+31
Original file line numberDiff line numberDiff line change
@@ -1379,6 +1379,37 @@ class Component extends ComponentImpl
13791379
}
13801380
}
13811381

1382+
public function swapClasses(classesToAdd:Array<String>, classesToRemove:Array<String> = null, invalidate:Bool = true, recursive:Bool = false) {
1383+
var needsInvalidate = false;
1384+
if (classesToAdd != null) {
1385+
for (classToAdd in classesToAdd) {
1386+
if (classToAdd != null && classes.indexOf(classToAdd) == -1) {
1387+
classes.push(classToAdd);
1388+
needsInvalidate = true;
1389+
}
1390+
}
1391+
}
1392+
1393+
if (classesToRemove != null) {
1394+
for (classToRemove in classesToRemove) {
1395+
if (classToRemove != null && classes.indexOf(classToRemove) != -1) {
1396+
classes.remove(classToRemove);
1397+
needsInvalidate = true;
1398+
}
1399+
}
1400+
}
1401+
1402+
if (invalidate == true && needsInvalidate == true) {
1403+
invalidateComponentStyle();
1404+
}
1405+
1406+
if (recursive == true) {
1407+
for (child in childComponents) {
1408+
child.swapClasses(classesToAdd, classesToRemove, invalidate, recursive);
1409+
}
1410+
}
1411+
}
1412+
13821413
/**
13831414
* A string representation of the `css` classes associated with this component
13841415
*/

0 commit comments

Comments
 (0)