Colon: GUI

Hvordan en skal beskrive GUI-kode i Colon er jeg fortsatt litt usikker på, men ting begynner å ta en eller annen form i alle fall.

Eksempel 1:

En enkelt knapp med teksten “Say hello” på som når den trykkes på skriver ut “Hello, World!”.

  1. sayhello: receive "Hello, World!" out sayhello
  2. {"Say hello"} ¤sayhello gbutton "Say hello" gwindow gmain

Eksempel 2:

Tre knapper plassert vertikalt med tekstene “1”, “2” og “3” på som når du trykker på “1” oppdaterer teksten på “1” til “wee” og når du trykker på “2” eller “3” skriver ut at du trykket på den respektive knappen.

  1. buttonpressed: receive
  2. {one _} = ? "Button one pressed" out tail {one: "wee"} swap send
  3. {two _} = ? "Button two pressed" out
  4. {three _} = ? "Button three pressed" out
  5. buttonpressed
  6. {one: "1" two: "2" three: "3"} ¤buttonpressed gbutton gvbox "The buttons" gwindow gmain

Så noen eksempler med å hente ut verdier fra de forskjellige GUI-elementene når ting skjer. Det jeg har tenkt foreløpig er at du kan sende en get melding til pid om hva du vil ha.

  1. {get texta textb} -> {get pid {texta: "mmm" textb: "yess"}}
  2. {get celsius} -> {get pid {celsius: "30"}}
  3. {get values: @inputvalues} -> {get pid {values: {1 4 6 7 8}}}
  4. {get @inputvalues} -> {get pid {1 4 6 7 8}}

Eksempel 3

Dette eksempelet viser en øverst en tekst deretter fem tekstbokser vertikalt samt en “Average”-knapp nederst som når den blir trykket på kalkulerer snittet på de fem tallene og gir svaret i det øverste tekst-elementet.

  1. calculate: receive
  2. {calculate pid} = ? {get @inputvalues} pid send drop
  3. {get pid _} = ? tail 0 swap | + ; 5 / {display: @0} pid send drop
  4. {{display: "0"} glabel
  5. {} 1 5 to | "" + ; gtextbox !inputvalues
  6. {"Calculate average"} ¤calculate gbutton}
  7. gvbox "Average" gwindow gmain

Eksempel 4

Et lite eksempel for å omforme Farhenheit til Celsius.

  1. f2c: 32 - 5 9 / *
  2. calculate: receive
  3. {convert pid} = ? {get celsius} pid send drop
  4. {get pid _} = ? tail . celsius f2c {display: @0} pid send drop
  5. calculate
  6. {{display: "0"} glabel
  7. {celsius: ""} gtextbox
  8. {convert: "Convert"} ¤calculate gbutton}
  9. gvbox "F2C" gwindow gmain

Om det er slik det blir til slutt gjenstår å se da det ikke alltid er så lett å vite når alle detaljer om hva som går an å gjøre og hva som ikke går an før kompilator/vm fungerer.

Tilbaketråkk url: klikk her!
Stikkord: colon
Fb

Relevante innlegg/sider/lenker

0 tilbaketråkk: