Hallo,
Ik weet niet zeker of dit de goede categorie is, devschuur/programming zou ook kunnen.
Een tijd geleden heb ik een menu-programmaatje gemaakt in C op FreeBSD. Deze werkt in xterm en gebruikt ANSI-sequences voor kleuren en cursor positioning. Om de vereisten zo laag mogelijk te houden en dit ook op minimaal compatible systemen moet gaan draaien wil ik liever geen lib als ncurses gebruiken, en wel de kale standaard xterm.
Een menu is niet meer dan een lijstje met keuze-opties omringd door een ASCII kadertje. Het kan bediend worden met up/down/escape/enter. Elke optie kan een submenu bevatten die gestart en actief wordt met <enter> , waarbij het hogere menu ook in beeld blijft staan maar niet-actief.
Wat ik wil is het niew gekozen actieve menu centreren in beeld, waarbij op het moment dat bijv. van hoofdmenu naar submenu wordt gegaan, daarheen wordt geschoven door het hele scherm te laten verspringen, liefst stapsgewijs, dus per regel/kolom zodat er enige 'animation' te zien is. Alleen is het in FreeBSD moeilijk om te achterhalen wat er in beeld staat. Wat wel lukt is de menu's bij openen dumpen naar een tijdelijk ANSI bestand. De scherm-content kan dus altijd hersteld worden, maar daarbij zijn we wel gebonden aan de huidige terminal settings. Een regel of kolom opschuiven kan niet zomaar.
Wat ik volgens mij nodig heb is een tool waarmee je ANSI-content in een groot virtueel tekstblok kan plaatsen en daaruit een selectie van een rechthoekig deel kan halen (x,y - hoogte, breedte) waarbij kleuren e.d. gewoon blijven bestaan en cursor posities vertaald worden naar naar waarden relatief aan die afzonderlijke rechthoek, dus linksboven is dan cursor positie (1,1)
Kent iemand iets dergelijks, of een betere methode?
Ik weet niet zeker of dit de goede categorie is, devschuur/programming zou ook kunnen.
Een tijd geleden heb ik een menu-programmaatje gemaakt in C op FreeBSD. Deze werkt in xterm en gebruikt ANSI-sequences voor kleuren en cursor positioning. Om de vereisten zo laag mogelijk te houden en dit ook op minimaal compatible systemen moet gaan draaien wil ik liever geen lib als ncurses gebruiken, en wel de kale standaard xterm.
Een menu is niet meer dan een lijstje met keuze-opties omringd door een ASCII kadertje. Het kan bediend worden met up/down/escape/enter. Elke optie kan een submenu bevatten die gestart en actief wordt met <enter> , waarbij het hogere menu ook in beeld blijft staan maar niet-actief.
Wat ik wil is het niew gekozen actieve menu centreren in beeld, waarbij op het moment dat bijv. van hoofdmenu naar submenu wordt gegaan, daarheen wordt geschoven door het hele scherm te laten verspringen, liefst stapsgewijs, dus per regel/kolom zodat er enige 'animation' te zien is. Alleen is het in FreeBSD moeilijk om te achterhalen wat er in beeld staat. Wat wel lukt is de menu's bij openen dumpen naar een tijdelijk ANSI bestand. De scherm-content kan dus altijd hersteld worden, maar daarbij zijn we wel gebonden aan de huidige terminal settings. Een regel of kolom opschuiven kan niet zomaar.
Wat ik volgens mij nodig heb is een tool waarmee je ANSI-content in een groot virtueel tekstblok kan plaatsen en daaruit een selectie van een rechthoekig deel kan halen (x,y - hoogte, breedte) waarbij kleuren e.d. gewoon blijven bestaan en cursor posities vertaald worden naar naar waarden relatief aan die afzonderlijke rechthoek, dus linksboven is dan cursor positie (1,1)
Kent iemand iets dergelijks, of een betere methode?
You are in a maze of little twisting passages, all different.