Konsola AGE

Konsola do AGE wreszcie skończona. Na początek zmagałem się z obsługą wyświetlania, dodawania linii i opcjami takimi jak „przewijanie” konsoli i czyszczenie ekranu konsoli. Następnym krokiem było wprowadzanie komend do konsoli. Tutaj na początku wydawało mi się to bardzo trudne ze względu na to że musiałbym sobie sam zakodować obsługę klawisza SHIFT. Tutaj jednak z pomocą przyszedł mi unikod. Można go w SDLu włączyć za pomocą wywołania:

SDL_EnableUNICODE(true);

Wtedy struktura eventu klawiatury otrzymywanego od SDL jest wypełniona dodatkowo o kod wciśniętej kombinacji klawiszy w unikodzie. To bardzo mi pomogło ponieważ po wciśnięciu SHIFT+0 od razu dostałem znak ‚)‚ zatem nie musiałem się już martwić o takie rzeczy.

Później dodałem jeszcze obsługę klawiszy:

  • PageUp, PageDown, Strzałki – dół, góra: przewijanie konsoli
  • Strzałki – prawo, lewo: przesuwanie karetki w prawo/lewo
  • CTRL + prawo/lewo: przesuwanie karetki o całe wyrazy
  • (CTRL +) Backspace/Delete: usuwanie znaków/wyrazów przed i za karetką
  • Home/End: przejście na początek/koniec linii

Możliwe, że w przyszłości dodam jeszcze uzupełnianie komendy za pomocą klawisza TAB.

Końcąwą fazą tworzenia konsoli był jej kluczowy element – dodanie obsługi wpisywanych komend. Rozwiązanie już mialem (z poprzedniej wersji AGE). Teraz wystarczyło prawie skopiować kod i troszkę go przystosować.

Planuję jeszcze dodać wbudowaną komendę help która pokazywałaby pomoc dla komendy podanej jako argument. Oczywiście użytkownik AGE mógłby stworzyć ją sam, ale wtedy miałby z tym więcej pracy. Co o tym sądzicie?

Reklamy

3 myśli nt. „Konsola AGE

  1. Porządny TextBox ma jeszcze zaznaczanie SHIFT-em (działające ze strzałkami, z CTRL, itd.). A co do tego problemu z czytaniem znaków… każde porządne API ma, oprócz zdarzenia KeyDown, także zdarzenie KeyPress (WM_CHAR w WinAPI), zawierające kod wprowadzonego znaku i nie powinno być nigdy koniecznie, aby samemu robić to, co robi sterownik klawiatury.

  2. Sądzę że to kawał dobrej roboty i z chęcią bym przetestował co potrafi AGE z tą nową konsolą.. Nie chciałbyś wypuścić co jakiś czas jakiegoś bulida „do testów” ?

  3. @Zene: To AGE w sumie potrafi niewiele – zwłaszcza w porównaniu z tym co miałem w pierwszej wersji którą pisałem pod Windowsa.
    Właściwie to mogę się zastanowić nad rzuceniem czegoś w świat by ludzie potestowali i zgłosili uwagi ^^ Pomyślę nad tym chociaż sesja się zbliża wielkimi krokami więc chyba w najbliższym czasie się to nie uda 🙂

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s