Beiträge von Jac de Lad

    Ok, also WindowStyle 512 sollte jetzt keine Probleme mehr machen. Der neue Hovermodus ist auch drin, gefällt mir besser als der alte. Außerdem wird der Updatemodus nach Erstellen eines Ribbons standardmäßig auf 1 gestellt, das Ribbon wird also erstmal nicht gezeichnet.
    Es wird noch keine Log-Datei geschrieben, weil ich erstmal was anderes probiert habe. Wenn du Zeit hast dann stresse mal diese Alpha.
    ...und Entschuldigung wegen der Dokumentation. Da noch viel verändert wird ist sie momentan noch ein einziges Chaos.

    Hallo Addi,
    das Ribbon muss natürlich deinitialisiert werden bevor das entsprechende Fenster geschlossen wird.
    Abstürze hatte ich noch keine, Windowsstile 512 habe ich noch nicht probiert. Ich habe nächste Woche Nachtschicht und untersuche das mal.
    Kannst du mir noch grob mitteilen was du für einen Rechner hast, bzw. welche Windows-Version und XProfan-Version? Wann genau tritt der Absturz auf? Hättest du Zeit bei Gelegenheit mal eine Debugversion zu untersuchen? Ich würde die DLL einfach eine Logdatei schreiben lassen.

    Winziges Update:

    • Ein paar kleine Bugs behoben
    • Popups noch immer nicht final
    • Problem bei der Ereignisrückgabe des Collapsers (immer 65535, Problem bei Benutzung mehrerer Ribbons)
    • Ribbon wird nicht gerendert, wenn es keine einzige Category enthält. Ich weiß noch nicht, ob ich das ändere (weil es eigentlich keinen Sinn ergibt).

    Das nächste Update beinhaltet eine überarbeitete Dokumentation und einen neuen Hovermodus (wenn er mir gefällt und so wird wie es mir vorstelle). Wenn die Popups endlich sinnvoll einsetzbar sind werde ich in Richtung Release gehen.

    Ich hab gerade noch einen (von etlichen weiteren) Fehler entdeckt: Das gezielte Setzen eines Status mittels AddRibbonItemStatus() und SubRibbonItemStslatus() funktioniert nicht. Der Fehler ist bei mir schon behoben, der Upload erfolgt mit der nächsten Version.

    Neue Version:

    • Ein ziemlich exotischer Fehler wurde behoben. Wenn das Ribbon teilweise verdeckt war konnte das gesamte Programm abstürzen.
    • Kleinere Anpassungen und Optimierungen.
    • Ein paar neue Befehle und Änderungen. Diese werde ich genau in der Hilfe beschreiben, die ich ab heute anfangen werde.
    • Eine Einleitung liegt jetzt bei. Damit sollen Neulinge an die Ribbons herangeführt werden. Ein gewissen Wissen über XProfan ist Voraussetzung, die Bedienung der Grundfunktionen ist aber eigentlich recht einfach. Zusätzlich gibt es ein Kapitel, in dem die erweiterten Funktionen erklärt werden, dieses richtet sich aber an erfahrene Programmierer, die Erfahrung mit Subclassing und dem Arbeiten mit Messages und Notifications haben.
    • Das Handling der Popups soll noch einmal überarbeitet werden. Mehr dazu wenn es Fortschritte gibt.
    • Bilder und animierte GIFs (bzw. Animationen im Allgemeinen) einfügen schaue ich mir heute Abend an. Das Einfügen von Bildern ist auf alle Fälle einen Blick wert.

    An JSON habe ich noch nicht gedacht. Bleibt aber die Frage der automatischen Anordnung. Da muss eine Rangordnung her...


    Ich hatte noch an "Bandana" gedacht...


    Wegen GIFs schaue ich mal. Wäre interessant wo genau die überall eingesetzt werden sollen.

    • Der Fokusverlust sollte jetzt flackerfrei behoben sein.
    • Bei Verkleinerung von unten habe ich noch keine Idee was geschehen soll. Ich bin für Vorschläge offen. Der Source, der das Verkleinern behindert fluktuiert irgendwo rum, ich habe ihn aber auch (und benutze ihn in so ziemlich allen Programmen mit veränderlichen Fenstern). Das liegt im Prinzip in der Verantwortung des XProfan-Programmierers.
    • Bei Verkleinerung von der Seite werde ich noch eine Art Scrollbutton einführen. Das steht aber momentan hinten an. Da bitte abwarten.
    • Bedenken für Copyright unter PB habe ich keine, ich darf mit meinen Produkten machen was ich will. Es ging darum, das MS die Hand auf seinen Ribbons hat. Soweit ich weiß darf man die in .net für eigene Produkte nutzen, wenn man angemeldet ist und diese in keiner Konkurrenz zu MS-Produkten stehen. Ansonsten werden Lizenzgebühren fällig. Da ich hier was komplett neues erschaffe, was nur bedingte Ähnlichkeit mit den Ribbons von MS hat, sehe ich eigentlich nicht wirklich Probleme. Außerdem vermute ich nicht, dass jemand hier das nächste Office rausbringt. Für eine Namensänderung bin ich aber offen. Wenn mir ein Vorschlag gefällt (sofern sich jemand die Mühe macht) dann benenne ich es gern um. Es sollte natürlich modern und irgendwie international klingen. Vielleicht französisch, "le Ribbón". :D
    • Die Möglichkeiten der Containter innerhalb einer Gruppe sind noch begrenzt. Bis jetzt geht nur drei Zeilen übereinander und Minibuttons in beliebiger Anzahl. Für Vorschläge bin ich auch hier offen, vielleicht lässt sich eine Art Scriptsystem erarbeiten, mit dem das viel flexibler ist. Ich weiß, dass die MS-Ribbons XML nutzen, aber das geht mir zu weit (und ich könnte das wahrscheinlich auch nicht). Ein bisschen mehr Flexibilität wäre natürlich cool. Im Moment lag der Fokus darauf, dass sich alle Steuerelemente stets selbst anordnen (deswegen auch die strenge Hierarchie), wenn man sie jedoch wie in normalen XProfan mit Koordinaten erstellt wäre das schon flexibler, aber auf Kosten der Selbstanordnung und das will ich eigentlich nicht.
    • Den reinen Text in der Kopfleiste könnte ich auch noch in einen Button umwandeln (bzw. natürlich beide Möglichkeiten einbauen). Ein Seitenmenü, ähnlich wie in Office, ist auch noch geplant, da wird wahrscheinlich eh ein Textbutton, der keine Category ist, fällig.
    • GIF sollte gehen, aber wo hast du die Frage gelesen? Mit GIFs experimentiere ich mal, aber nicht sofort.

    Hallo Michael,
    danke für's Testen.

    • Fehler in der "Hilfe" behoben. GetRibbonRoundness() gibt es nicht mehr, das ist jetzt bei GetRibbonMetric() drin.
    • Es soll nur Ribbon_Flag_Autosize sein
    • Das verschwundene Icon liegt wohl an der Runtime, im Prinzip ist das nicht so wichtig, weil der Programmierer ja die Icons bereitstellt.
    • Der Fokusverlust ist mir noch gar nicht aufgefallen. Sollte behoben sein, eventuell könnte es noch ab und zu kurz flackern.
    • Die Checkbox funktioniert jetzt wieder.
    • Die Größenänderung ist alles andere als perfekt. Eine Scrollfunktion soll noch kommen sobald alle anderen Kinderkrankheiten rausgeimpft sind.
    • "Und ein ausgerolltes Ribbon sollte sich bei Verkleinerung gegen eine Überdeckung von unten wehren." Was meinst du damit?
    • "Außerdem ist "Hier steht ein Text" etwas egoistisch und überdeckt darunter liegende Elemente beim Verkleinern." Auch hier ist mir nicht ganz klar was du meinst...
    • Was meinst du mit Bedenken unter PB???
    • Die "...PopupText()"-Funktionen bitte noch vorerst ignorieren, die sind noch nicht freigegeben.

    Neue Version der DLL, jetzt mit Inc dazu.


    Nachtrag: Gegen das gelegentliche Flackern habe ich, glaube ich, was gefunden. Werde ich heute Abend testen.

    Kein Problem. Ich habe schon weiter daran gebastelt. Mehr Optimierungen, Texte in den Popup-Fenstern (weil Statics die falsche Hintegrundfarbe haben können) etc. Außerdem will ich das Buttonsystem vereinfachen (keine Unterscheidung der Buttons, die soll per Flag erfolgen). Update erfolgt demnächst.

    So, das (erste) heutige Update ist fertig:

    • Einige Funktionen wurden umbenannt.
    • Popups (Fenster, die auf Klick eines Buttons erscheinen) können nun mit Steuerelementen gefüllt werden. Diese können momentan nur per Subclassing abgefragt werden.

    Addi: Wenn du Lust hast kannst du ja mal einen ColorPicker zusammenzaubern. Die Beispieldatei wurde aktualisiert, ebenso die Hilfe. Vielleicht reichen die Informationen schon aus, um was zusammenzuschreiben. Leider ist ein bisschen Subclassing notwendig, das konnte ich bisher nicht umgehen. Außerdem sehr wichtig:

    • Wenn ein Popup offen ist und es den Fokus verliert (zum Beispiel eine Messagebox) muss der Fokus nachher wieder an das Popup abgegeben werden (z.B. per SetActiveWindow(GetRibbonPopupHandle(popupid&))).
    • Subclassing nicht vergessen.

    Wenn du (oder sonst jemand) noch Fragen hast kannst du dich gern an mich wenden.

    Ok, weiter geht's:

    • Es können PulldownButtons/HeadPulldownButtons/RightHeadPulldownButtons erstellt werden. An diese wir mit der Funktion RibbonLinkPopupWindow() ein Fenster gelinkt, das bei einem Klick auf den Button geöffnet wird. Das Fenster schließt automatisch, wenn es den Fokus verliert. Die weiteren Verhaltensweisen müssen noch angepasst werden. Es gibt noch keine Steuerelemente in den Subfenstern, daran arbeite ich noch.
    • Das Rendering wurde weiter optimiert.

    Hey Addi, es klappt. Aber ich hab noch viel Arbeit vor mir. Pulldown-Elemente kann ich jetzt überall erstellen. In der neuesten Version ist schon ein Teil implementiert (nur HeadButtons). Bisher wird nur ein kleines grause Feld unter dem Button erzeugt, aber das reicht erstmal als Test. Es verschwindet wenn außerhalb des Feldes geklickt oder ein anderes Fenster aktiviert wird. Hab ich was vergessen?

    • Rendering weiter optimiert (Der Renderaufwand wurde weiter verringert).

    Danke. Es wird leider nie an die echten Ribbons rankommen, aber da hat ja bekanntlich Microsoft die Hände drauf. Um einem Programm einen unverkennbaren Look zu geben reicht es aber schon. Ich finde auch die Integration und Handhabung gelungen, ich hatte am Anfang nicht gedacht, dass ich es so einfach gestalten kann.

    Hallo Addi,
    es ist ~Ribbon_Status_Deactivated, nicht Disabled. Mein Fehler.


    An Comboboxen, Ausklappbuttons usw. arbeite ich gerade. Das ist nicht so einfach, da ich ja außerhalb des Controls zeichnen muss. Und das auch noch über eventuell anderen Steuerelementen. Wird eine Weile dauern, falls ich es überhaupt hinkriege. Schlimmstendfalls verkommt das Ribbon zu einer hübschen Toolbar (aber auch dann hat es sich meines Erachtens gelohnt). ;)
    Sobald ich das hingekriegt habe, also Ausklappsteuerelemente, melde ich mich und wir können erörtern welche Steuerelemente ich einbaue. :)