Child pages
  • Yksinkertainen Caps Lock -tilakonemalli
Skip to end of metadata
Go to start of metadata


#include <iostream>
using namespace std;

enum CapsState {
    CAPS_OFF,
    CAPS_ON
    };
enum Event {
    CAPS_LOCK_PRESSED,
    KEY_A_PRESSED
};
        
void kasitteleTapahtuma(Event tapahtuma, CapsState &kapsLokinTila);

int main() {
    
    CapsState kapsLokinTila = CAPS_OFF;

    kasitteleTapahtuma(KEY_A_PRESSED, kapsLokinTila);
    kasitteleTapahtuma(CAPS_LOCK_PRESSED, kapsLokinTila);
    kasitteleTapahtuma(KEY_A_PRESSED, kapsLokinTila);
    kasitteleTapahtuma(CAPS_LOCK_PRESSED, kapsLokinTila);
    kasitteleTapahtuma(KEY_A_PRESSED, kapsLokinTila);

}

void kasitteleTapahtuma(Event tapahtuma, CapsState &kapsLokinTila){
    switch(tapahtuma){
        case CAPS_LOCK_PRESSED:
            if(kapsLokinTila==CAPS_OFF){
                kapsLokinTila=CAPS_ON;
                cout << "CAPS LOCK kytketty päälle\n";

            }else if(kapsLokinTila==CAPS_ON){
                kapsLokinTila=CAPS_OFF;
                cout << "CAPS LOCK kytketty pois\n";
            }
            break;
        case KEY_A_PRESSED:
            if(kapsLokinTila==CAPS_OFF){
                cout << "kirjain a painettu\n";
            }else if(kapsLokinTila==CAPS_ON){
                cout << "kirjain A painettu\n";
            }
            break;
        default:
            cout << "tuntematon tapahtuma";
    }
    
}

  • No labels
You must log in to comment.