Kirjoittaja Aihe: [ ratkaistu ] ncurses graafisissa ikkunoissa, toimisko ?  (Luettu 3245 kertaa)

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Toimisiko ncursesilla tehty ohjelma erikokoisilla ikkunoilla eli osoaisiko se sopeutua itsestään siihen ikkunaan jossa se toimii, vai ovatko siinä annetut koordinaatit ihan kiinteitä koskien koneen oikeaa näyttöä?

Ajattelin kokeilla esimerkiksi paria samanaikaista ncurses-ikkunaa ja hiirtä niiden kanssa.
« Viimeksi muokattu: 27.02.18 - klo:21.38 kirjoittanut teele »

nm

  • Käyttäjä
  • Viestejä: 16426
    • Profiili
Toimisiko ncursesilla tehty ohjelma erikokoisilla ikkunoilla eli osoaisiko se sopeutua itsestään siihen ikkunaan jossa se toimii, vai ovatko siinä annetut koordinaatit ihan kiinteitä koskien koneen oikeaa näyttöä?

Kyllä sopeutuu dynaamisesti ja komponentit voi sijoitella suhteellisilla koordinaateilla. Käynnistä vaikka alsamixer-ohjelma päätteessä ja kokeile muuttaa ikkunan kokoa.

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Vs: [ ratkaistu ] ncurses graafisissa ikkunoissa, toimisko ?
« Vastaus #2 : 27.02.18 - klo:21.43 »

kiitos,
en onnistunut löytämään kooklaamalla ohjetta, jossa olisi kerrottu, miten voisi tehdä ikkunan kokoon mukautuvan ncurses-ohjelman. Löysin vain viittauksia lisä palikoihin.

yritän etsiä uudestaan, ja toivottavasti kovin paljon lisä osia ncursesin lisäksi ei tarvita.

nm

  • Käyttäjä
  • Viestejä: 16426
    • Profiili
Vs: [ ratkaistu ] ncurses graafisissa ikkunoissa, toimisko ?
« Vastaus #3 : 27.02.18 - klo:22.33 »
Tarkemmin katsoen sisältö täytyy piirtää itse uudelleen käyttäen uutta maksimikokoa sijaintien määrittämiseen. Erityisesti valikot ja lomakkeet eivät tottele wresize-funktiota. Syötteenä saatava KEY_RESIZE -signaali kertoo, että koko on muuttunut.

Jos tarkoituksena on vain tehdä tekstipohjainen käyttöliittymä johonkin omaan projektiin, eikä ole erityistä tarvetta käyttää juuri ncurses-kirjastoa, kannattanee harkita jotain helpompaa valmista TUI-sovelluskehystä, joka käyttää ehkä ncursesia taustalla, mutta hoitaa tällaiset yksityiskohdat puolestasi. Esimerkiksi:

https://github.com/yaronn/blessed-contrib
https://github.com/gizak/termui
http://npyscreen.readthedocs.io/introduction.html
https://github.com/pfalcon/picotui

jne.