package org.geogebra.keyboard.base;
import org.geogebra.keyboard.base.model.KeyboardModel;
import org.geogebra.keyboard.base.listener.KeyboardObserver;
/**
* An internal keyboard controller.
*/
public interface Keyboard {
/**
* Returns the keyboard model. Controllers should use this
* to build and refresh the keyboard view.
*
* @return the model
*/
KeyboardModel getModel();
/**
* Register a keyboard observer to refresh the view.
*
* @param observer keyboard observer
*/
void registerKeyboardObserver(KeyboardObserver observer);
/**
* Toggle the accent on/off.
*
* @param accent one of {@link Accents} with the prefix <i>ACCENT</i>.
*/
void toggleAccent(String accent);
/**
* Disable the caps lock.
*/
void disableCapsLock();
/**
* Toggle the caps lock on/off.
*/
void toggleCapsLock();
}