Improved Console v2.0 Beta



  • ahja ich habe jetzt ein zip gemacht, docu kommt irgend wann http://home.arcor.de/gerard.choinka/Improve%20Konsole%20v2.0.zip

    [ Dieser Beitrag wurde am 26.02.2003 um 19:53 Uhr von Dimah editiert. ]



  • was haltet ihr von dieser docu?

    namespace kon // namespace kon steht für konsole
    {
        namespace cursor // in diesen namespace sind funktion die sich mit cursor bescheftigen
        {
            struct pos
            {
                pos();
                pos(short int x_, short int y_);
                short int x;
                short int y;
            };
            // was soll ich dazu noch sagen eine structur mit zwei memeber x und y
            // x und y stehen für die x-kordinate und y-kordinate
    
            const pos getmaxpos();
            // dieser Funktion gibt die maximale x- und y-kordinate zurück
            // z.b. wenn den cursor z.b. in die rechte untere ecke haben will so macht man das so
            // pos p = getmaxpos();
            // gotoxy( p.x, p.y );
    
            const pos getpos();
            // diese funktion gibt die aktuele position des cursers wieder
    
            void setpos(const pos & c);
            // diese funktion setzt die aktuele position des cursers
    
            enum mode { off, insert, overwrite };
            // konstanten für die funktion setmode
            // off        schalte den curser weg
            // insert     das ist der standard curser
            // overwrite  der curser wird zu ein grossen block
    
            void setmode(mode m);
            // dieser funktion kann man die konstanten übergeben 
        }
    
        namespace color // in diesen namespace werden farbkonsten definiert
        {
            enum type
            {
                black,
                darkgrey,
                grey,
                white,
    
                darkred,
                darkgreen,
                darkblue,
                darkyellow,
                darkturquoise,
                darkpink,
    
                red,
                green,
                blue,
                yellow,
                turquoise,
                pink,
                current // die aktuele farbe
            };
        }
    
        void cls(color::type color = color::current);
        // mit dieser funktion kann man den bildschirm löschen
        // als paramter kann man ihr eine farbkonste aus den namespace colors übergeben 
    
        manipulator gotoxy(short int x, short int y);
        // setzt den curser auf eine bestimte postion
        // zu rückgabe wert sieh unten
    
        manipulator setcolor(color::type text_color, color::type back_color = color::current);
        // verändert die farbe von text und hintergrund
        // der erste paramter steht für text und der zweite optionale für den hintergrund
    
        // der manipulator der von setcolor und gotoxy zurück gegeben wird macht diese funktion
        // zu was besonden
        // werden diese funktion ganz normal aufgerufen
        // z.b. 
        // int main() 
        // { 
        //     setcolor( colors::red );
        //     cout << "In Rot\n";
        // }
        // so verhalten sie wie man das von ihnen erwartet
        // werden sie aber in ein stream übergeben z.b.
        // int main() 
        // { 
        //     cout << setcolor( colors::red ) << "In Rot\n";
        //     cout << "Wieder in Standard Farben\n";
        // }
        // so verändern sie die Farbe nur bist zum ende der Anweisung (bis zum Simikolon)
        // nur der text "In Rot" wird in rot geschreiben.
        // setcolor und gotoxy funktionieren zwar auch mit andern stl stream wie fstream
        // haben jedoch keine wirkung auf sie.
    }
    

    [ Dieser Beitrag wurde am 26.02.2003 um 23:12 Uhr von Dimah editiert. ]



  • Hi, kannst du die Doku nicht einheitlich mit Doxygen erstellen?
    Und dieser Kommentar ist wirklich unnütz. 😉

    // was soll ich dazu noch sagen eine structur mit zwei memeber x und y



  • Original erstellt von <Hannes>:
    **Hi, kannst du die Doku nicht einheitlich mit Doxygen erstellen?
    **

    eigentlich fand ich den header ohne komentare schon aussagekräftig genug und ich werde Doxygen nur anfassen weil ich das bestimt mal brauchen werde



  • jetzt noch eine frage
    soll links oben 0/0 (c/c++ array style) sein oder 1/1 (warmduscher style)
    soll x horizontal und y vertikal sein(wie bei einen kordinaten system & winapi)
    oder vertauscht wie bei conio.h

    einerseits ist IC 2.0 ja auch nur ein port von conio.h
    anderseits finde ich es mist und wenn ich ne möglichkeit sehe alten mist über bord zu werfen dann will ich es nutzen

    umsteiger von conio.h auf IC 2.0 werde ich wohl kaum haben, ic2.0 hat ja nix überragendes neues und wer bitte der mit konsolen grafik rumspielt ist dran interesiert seine programme auf linux zu porten?

    ich schwanke



  • Ursprung auf 1/1, ich will als letztes Feld meistens die Größe also 80/25 und kein 79/24.

    Desweiteren ist x die Breite und y die Höhe. Also im Normalfall wäre die Größe dann x/y 80/25.

    MfG SideWinder



  • der unix port braucht nur noch eine funktion cursor::getpos() :(, esc sequenzen scheiden aus, ncurses lib nur wenn ich deren funktionen benutze
    was meint ihr soll ich ein strembuffer schreiben der diese funktion benutzt?



  • Ich wäre noch für die Funktionen

    cursor::getmode();
    getcolor();
    

    @Dimah: Ich finde deine Doku gut gelungen.



  • ok die funktionen sind drin



  • wenn ich noch weiter mit der curses lib arbeiten soll dann muss ich mein zimmer mit weichen gummie auskleiden 😞



  • Ich sach ja, nimm die Escapesequenzen 😉

    Hast du dir den Link aus der Mail angeguckt? Dort lief das doch alles, wenn ich mich nicht irre?



  • Original erstellt von DrGreenthumb:
    **Ich sach ja, nimm die Escapesequenzen 😉
    **

    die können mir aber nicht sagen wo der cursor grade ist, aber da ich schon den streambuf ausgetauscht habe werde ich ihn umschreiben und die position ausrechnen
    da weiß ich weniges das es geht

    Original erstellt von DrGreenthumb:
    Hast du dir den Link aus der Mail angeguckt? Dort lief das doch alles, wenn ich mich nicht irre?

    jup, werde das jetzt über esc squenzen machen



  • Gibt es bei Linux nicht eine vernünftige Konsolen-API?



  • Original erstellt von <Heini>:
    Gibt es bei Linux nicht eine vernünftige Konsolen-API?

    naja ncurses
    teilweisse ist sie einfach mist
    teilweisse kammen die probleme weil sie ein anderes einsatz feld hat
    teilweisse weil ich es in mein mit der winapi erdachtes desing zwengen musste

    aber jetzt habe ich ncurses über bord geworfen (zwei funktion müssen drunter leiden, 1. kon::cursor::setmode() macht in der unix version nix und kon::cursor::getmaxpos() leifert immer 80/25)



  • Wir hatten doch schon über das Englische gesprochen. Nimm "con" anstatt "kon".



  • Original erstellt von WebFritzi:
    Wir hatten doch schon über das Englische gesprochen. Nimm "con" anstatt "kon".

    nö habe den namesapce kon jetzt lieb gewonnen und die engländer werden sich damit abfinden



  • bitte nimm console



  • ok dann eben con

    nur noch doxygen und dann ist fertig (weis nicht was die leute von haben außer das es bunter ist und etwas sortiert dafür aber um das 10 fache aufgeblähter)



  • Original erstellt von Dimah:
    ok dann eben con

    *lol* Das war aber ein schneller Meinungswandel. 😃

    P.S.: Ich find's gut, dass du sowas machst. 🙂



  • Original erstellt von WebFritzi:
    P.S.: Ich find's gut, dass du sowas machst. 🙂

    danke

    hier noch mal der download link http://home.arcor.de/gerard.choinka/Improve%20Konsole%20v2.0.zip

    und hier zu der docu http://home.arcor.de/gerard.choinka/html/ (ist imm zip auch enthalten)


Anmelden zum Antworten