Undo/Redo für Editor implementieren



  • Hm, das ist noch nicht in meiner Sammlung... wollte ich mir demnächst aber so oder so holen. Danke für den Tipp. 🙂



  • Ich habe so etwas noch nicht implementiert, aber ich würde im Grunde eine Art "Diff"-Format benutzen. Von deinem Beispiel nehme ich mal an, dass es um eine Form der Textverarbeitung geht. Da solltest du ja relativ simpel etwas ala

    ZEILE:SPALTE +"..." bzw. -"..."

    erstellen und auf einen Stack pushen können.

    Wenn ich es richtig in Erinnerung habe, gab es in Bakery Undo/Redo Funktionen für GTKmm. Wobei ich nicht weiß wie gut Bakery ist und ich glaube kaum, dass man es so einfach in bestehenden Code integrieren kann.



  • Genau deshalb hatt ich ja eigentlich mal einen Thread eröffnet in dem möglichst allgemeingültige Implementierungen der Entwurfsmuster stehen sollten..
    Ist aber mal wieder anhand einer Diskussion zugrunde gerichtet worden.
    Wie dem auch sei. Das Command pattern und eine entsprechende Verwaltung sind da drin



  • kingruedi schrieb:

    Ich habe so etwas noch nicht implementiert, aber ich würde im Grunde eine Art "Diff"-Format benutzen. Von deinem Beispiel nehme ich mal an, dass es um eine Form der Textverarbeitung geht. Da solltest du ja relativ simpel etwas ala

    ZEILE:SPALTE +"..." bzw. -"..."

    erstellen und auf einen Stack pushen können.

    Yo, so in der Richtung dachte ich mir das auch, scheint eine praktikable Lösung zu sein 🙂

    kingruedi schrieb:

    Wenn ich es richtig in Erinnerung habe, gab es in Bakery Undo/Redo Funktionen für GTKmm. Wobei ich nicht weiß wie gut Bakery ist und ich glaube kaum, dass man es so einfach in bestehenden Code integrieren kann.

    Bakery ist noch nicht so ausgereift, wie der Rest des gtkmm Toolkits... und es würde sehr "angebaut" wirken, wenn ich jetzt gegen Ende (hoffentlich^^) noch mit Bakery anfange. Schlecht für's Gesamtdesign.

    DocJunioR schrieb:

    Genau deshalb hatt ich ja eigentlich mal einen Thread eröffnet in dem möglichst allgemeingültige Implementierungen der Entwurfsmuster stehen sollten..
    Ist aber mal wieder anhand einer Diskussion zugrunde gerichtet worden.
    Wie dem auch sei. Das Command pattern und eine entsprechende Verwaltung sind da drin

    Danke mann! Sowas hab ich gesucht... ist ja fast wie Weihnachten hier 🙂 👍

    Danke für alle Antworten.

    Viele Grüße

    GPC



  • wenn das ein windoze-programm werden soll: die edit controls haben schon ein eingebautes 'undo'



  • net schrieb:

    wenn das ein windoze-programm werden soll: die edit controls haben schon ein eingebautes 'undo'

    Die Gtk::TextView, bzw. der Gtk::TextBuffer haben ein eingebautes undo unter Windows? For sure?
    Nun, das Programm wird wohl größtenteils unter Windows laufen, jedoch auch (z.B. bei mir) unter GNU/Linux. Daher wäre eine portable Lösung schon nicht übel...



  • GPC schrieb:

    net schrieb:

    wenn das ein windoze-programm werden soll: die edit controls haben schon ein eingebautes 'undo'

    Die Gtk::TextView, bzw. der Gtk::TextBuffer haben ein eingebautes undo unter Windows? For sure?

    wenn das nur getarnte windows edit controls sind, dann schon: http://windowssdk.msdn.microsoft.com/en-us/library/ms672061.aspx#undoing_operations

    GPC schrieb:

    Daher wäre eine portable Lösung schon nicht übel...

    ja, äääh, nöö, portabel ist das natürlich nicht...



  • ne gtk benutzt doch keine nativen widgets



  • net schrieb:

    GPC schrieb:

    net schrieb:

    wenn das ein windoze-programm werden soll: die edit controls haben schon ein eingebautes 'undo'

    Die Gtk::TextView, bzw. der Gtk::TextBuffer haben ein eingebautes undo unter Windows? For sure?

    wenn das nur getarnte windows edit controls sind, dann schon: http://windowssdk.msdn.microsoft.com/en-us/library/ms672061.aspx#undoing_operations

    gtkmm wrappt die nativen WinAPI Widgets nicht, sondern zeichnet seine Widgets selber (bzw. lässt zeichnen).

    net schrieb:

    GPC schrieb:

    Daher wäre eine portable Lösung schon nicht übel...

    ja, äääh, nöö, portabel ist das natürlich nicht...

    Ach, was soll's... dann schreib ich's halt selber. DocJuniors Vorlage ist ja schon ziemlich gut.

    MfG

    GPC



  • DocJunioR schrieb:

    Genau deshalb hatt ich ja eigentlich mal einen Thread eröffnet in dem möglichst allgemeingültige Implementierungen der Entwurfsmuster stehen sollten..
    Ist aber mal wieder anhand einer Diskussion zugrunde gerichtet worden.

    Jo, weil's nix getaugt hat.


Anmelden zum Antworten