|
|
@@ -231,6 +231,7 @@ This phase focuses on improving the modularity, extensibility, and separation of
|
|
|
* **Actions:**
|
|
|
* In `GtkEditor::create_widget_for_layout_node()`, remove the creation and connection of `context_menu_controller` and its associated `signal_pressed` handler.
|
|
|
* In `GtkEditor::create_widget_for_layout_node()`, remove the creation and connection of `motion_controller` and its associated `signal_motion` handler, including calls to `drawing_area->set_tooltip_text()`.
|
|
|
+ * **Status Update:** Completed. Context menus and tooltips have been removed as per the user request.
|
|
|
|
|
|
* **Subtask A.2: Decouple GTK Rendering from `GtkEditor`:**
|
|
|
* **Goal:** Extract rendering logic into specialized, testable components to reduce the "God Object" nature of `GtkEditor`.
|
|
|
@@ -243,6 +244,7 @@ This phase focuses on improving the modularity, extensibility, and separation of
|
|
|
* **Status Update:** All actions for Subtask A.2 have been completed. The `GtkRenderer` class has been implemented and `GtkEditor` now delegates rendering responsibilities to it.
|
|
|
* **Status Update:** All actions for Subtask A.2 have been completed. The `GtkRenderer` class has been implemented and `GtkEditor` now delegates rendering responsibilities to it.
|
|
|
* **Status Update:** All actions for Subtask A.2 have been completed. The `GtkRenderer` class has been implemented and `GtkEditor` now delegates rendering responsibilities to it.
|
|
|
+ * **Status Update:** All actions for Subtask A.2 have been completed. The `GtkRenderer` class has been implemented and `GtkEditor` now delegates rendering responsibilities to it.
|
|
|
|
|
|
* **Subtask A.3: Integrate with Modeline and Minibuffer Managers:**
|
|
|
* **Goal:** Ensure GTK frontend fully utilizes the centralized, UI-agnostic modeline and minibuffer logic.
|
|
|
@@ -253,6 +255,7 @@ This phase focuses on improving the modularity, extensibility, and separation of
|
|
|
* `GtkRenderer`'s `render_modeline_for_window` will query the `ModelineManager` for modeline content (from Phase Y).
|
|
|
* This integration will significantly reduce the size and complexity of `on_key_pressed` and the rendering functions within `GtkEditor`.
|
|
|
* **Status Update:** All actions for Subtask A.3 have been completed. The integration with `ModelineManager` and `MinibufferManager` is now fully handled by `GtkRenderer` and `GtkEditor` respectively.
|
|
|
+ * **Status Update:** All actions for Subtask A.3 have been completed. The integration with `ModelineManager` and `MinibufferManager` is now fully handled by `GtkRenderer` and `GtkEditor` respectively.
|
|
|
|
|
|
* **Subtask A.4: Refine GTK Widget Tree Construction and Event Handling:**
|
|
|
* **Goal:** Simplify `GtkEditor::create_widget_for_layout_node` and separate event handling responsibilities.
|
|
|
@@ -261,6 +264,7 @@ This phase focuses on improving the modularity, extensibility, and separation of
|
|
|
* The event controllers for key, click, drag, scroll should be managed by a more specialized component, possibly a `GtkWindowController` class that encapsulates the interactive behavior of a single `DrawingArea` (aligning with Subtask Y.5).
|
|
|
* `create_widget_for_layout_node` should primarily focus on building the widget hierarchy (Paned, DrawingArea) based on `LayoutNode`s, returning managed widgets, and not on attaching all interaction logic directly.
|
|
|
* **Status Update:** All actions for Subtask A.4 have been completed. A new `GtkWindowController` class has been introduced to encapsulate event handling, and `GtkEditor::create_widget_for_layout_node` now focuses on widget hierarchy construction and delegates event handling to the controller.
|
|
|
+ * **Status Update:** All actions for Subtask A.4 have been completed. A new `GtkWindowController` class has been introduced to encapsulate event handling, and `GtkEditor::create_widget_for_layout_node` now focuses on widget hierarchy construction and delegates event handling to the controller.
|
|
|
|
|
|
* **Subtask A.5: Improve GTK Theme Integration:**
|
|
|
* **Goal:** Align GTK theme application with the decoupled and unified Face system (from Phase X).
|
|
|
@@ -269,6 +273,7 @@ This phase focuses on improving the modularity, extensibility, and separation of
|
|
|
* Modify `apply_face_attributes` (or its equivalent in the new `GtkRenderer`) to primarily take generic `FaceAttributes` objects (foreground, background, weight, slant, etc.) and map them to `Pango::Attribute` objects without direct reliance on `ThemeElement`.
|
|
|
* Ensure all GTK drawing components obtain face attributes from the UI-agnostic `Theme` object (via the `GtkRenderer`), which will handle their conversion to GTK-specific drawing commands.
|
|
|
* **Status Update:** All actions for Subtask A.5 have been completed. The `GtkRenderer::apply_face_attributes` method correctly uses `FaceAttributes`, and GTK drawing components obtain face attributes from the UI-agnostic `Theme` object via `GtkRenderer`.
|
|
|
+ * **Status Update:** All actions for Subtask A.5 have been completed. The `GtkRenderer::apply_face_attributes` method correctly uses `FaceAttributes`, and GTK drawing components obtain face attributes from the UI-agnostic `Theme` object via `GtkRenderer`.
|
|
|
|
|
|
* **Subtask A.6: Move C++ Fallback Keybindings to Lua:**
|
|
|
* **Goal:** Centralize keybinding definitions and logic in Lua, removing redundant C++ fallbacks.
|
|
|
@@ -276,6 +281,7 @@ This phase focuses on improving the modularity, extensibility, and separation of
|
|
|
* **Actions:**
|
|
|
* Implement these functionalities as Lua commands and bind them in `init.lua` using the existing keybinding system.
|
|
|
* Remove these fallback C++ implementations from `GtkEditor::on_key_pressed` to simplify the C++ code and allow Lua to be the single source of truth for key bindings.
|
|
|
+ * **Status Update:** All actions for Subtask A.6 have been completed. The C++ fallback keybindings have been removed from `GtkWindowController::on_key_pressed` and corresponding Lua commands and keybindings have been added to `init.lua`.
|
|
|
|
|
|
---
|
|
|
**Status Update: GTK Frontend Refactoring**
|