linysLockToggle.ets 817 B

1234567891011121314151617181920212223
  1. import { fontSize_Large } from '../../hosts/bunch_of_defaults';
  2. @Component
  3. struct linysLockToggle {
  4. @Link locked: boolean;
  5. @StorageProp('color_current_font') color_current_font: ResourceColor = $r('app.color.font_color_title');
  6. @State color: ResourceColor | undefined = undefined;
  7. // animation
  8. @State triggerValueReplace: number = 0;
  9. build() {
  10. SymbolGlyph(this.locked ? $r('sys.symbol.lock') : $r('sys.symbol.lock_open'))
  11. .onClick(() => {
  12. this.locked = !this.locked;
  13. this.triggerValueReplace += 1;
  14. })// .clickEffect(click_effect_default())
  15. .fontSize(fontSize_Large())
  16. .symbolEffect(new ReplaceSymbolEffect(EffectScope.WHOLE), this.triggerValueReplace)
  17. .fontColor([this.color ? this.color : this.color_current_font])
  18. }
  19. }
  20. export default linysLockToggle