Ich benutze ein Notebook-Widget, um eine Tabbed-Dateiansicht zu erstellen, und ich habe Code hinzugefügt, um das Entfernen von Seiten aus einem vorhandenen Notebook zu ermöglichen, wodurch ein neues Fenster mit einem separaten Notizbuch erstellt wird, das nur diese Seite enthält. Ich würde jedoch gerne die Möglichkeit haben, Seiten zwischen mehreren Notebooks zu verschieben.
Der Delegierte Notebook.WindowCreationHook
gibt mir das Notizbuch, aus dem die Seite stammt, das Seitenwidget und die X- und Y-Koordinaten, auf die es gelegt wurde, aber ich weiß nicht, wie ich sagen kann, auf welches Notizbuch es gelegt wird . Gibt es einen eingebauten Mechanismus für diese Wiederanbringung, oder muss ich an den Koordinaten vorbei gehen? Wenn ich die Koordinaten verwenden muss, was ist der beste Weg, sie zu nehmen und ein Notebook-Widget zurück zu bekommen? Ich kann eine Liste der Notizbücher speichern, die ich habe, wenn nötig, aber selbst dann wird der Code, um herauszufinden, welcher ein bisschen schwierig sein wird (unter Berücksichtigung der z-Reihenfolge und all dieser lustigen Dinge).
Ich habe mich entschieden, meinen eigenen Ratschlag zu wählen (den du auf -1 gewählt hast, und ich habe ihn gelöscht, weil er die Frage nicht wirklich beantwortet), also riskiere ich hier meinen Ruf erneut. Mit Code:
Unter der obigen Adresse finden Sie zwei Archive derselben Sache (da ich nicht weiß, welche Sie bevorzugen). In den Archiven gibt es Code, den ich heute geschrieben habe und der das tut:
Das Hauptfenster enthält ein Notizbuch mit drei Registerkarten, wobei jedes Register ein zufälliges UI-Element (eine Schaltfläche, einen Kalender und ein Kontrollkästchen) aufweist. Sie können die Registerkarten außerhalb des Hauptfensters ziehen. Wenn Sie sie außerhalb des Hauptfensters ablegen, wird ein neues Fenster erstellt, das selbst ein Notizbuch enthält. Die gerade abgelegte Registerkarte wird im neuen Fenster angezeigt. Du bist so weit gekommen.
Wenn Sie jetzt einen anderen Tab vom Hauptfenster in das neue Fenster ziehen, wird der Tab dem Notizbuch des neuen Fensters hinzugefügt, anstatt ein neues Fenster zu erstellen.
Wenn Sie alle Registerkarten aus dem neuen Fenster zurück in das Hauptfenster ziehen, wird das neue Fenster zerstört (nachdem die letzte Registerkarte entfernt wurde).
Schlüssel zu diesem Ding? GroupId = 0
für alle Notebooks. Sie handhaben die Ziehungen und Tropfen selbst.
Wenn Sie die Registerkarten in den neuen Fenstern ausblenden möchten (bevor Sie sie wieder anfügen), sollten Sie wahrscheinlich lieber in Andock-Widgets als in Notizbücher schauen.
Hinweis: Ich habe MonoDevelop unter Linux verwendet, um die verknüpfte Anwendung zu erstellen.
Tags und Links gtk#