From bc3eb7f8da17c0de7e4026c46360dab6d1328e35 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Wed, 29 Aug 2018 19:25:06 +0200 Subject: [PATCH] NotificationDisplay: experiment to build a collapsed display basically Gtk::Expander will do the trick. However, resizing of the enclosing panel is not handled properly, the log does not expand to take up the available space, as it did automaticall when just added directly into the frame --- src/gui/panel/infobox-panel.cpp | 9 ++++-- src/gui/panel/infobox-panel.hpp | 1 + src/gui/widget/error-log-display.hpp | 3 +- wiki/thinkPad.ichthyo.mm | 47 +++++++++++++++++++++++++--- 4 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/gui/panel/infobox-panel.cpp b/src/gui/panel/infobox-panel.cpp index 7e3d2c0d4..f36ba7382 100644 --- a/src/gui/panel/infobox-panel.cpp +++ b/src/gui/panel/infobox-panel.cpp @@ -44,6 +44,7 @@ namespace panel{ , twoParts_{Gtk::ORIENTATION_VERTICAL} , buttons_{} , frame_{"UI Integration Experiments"} + , logExpander_{"Error Log"} , theLog_{} { twoParts_.pack_start(frame_); @@ -88,9 +89,13 @@ namespace panel{ if (not theLog_) { theLog_.reset (new ErrorLogDisplay{}); + logExpander_.set_expanded (true); + logExpander_.add (*theLog_); frame_.set_border_width (5); - frame_.add (*theLog_); - frame_.show_all(); ///////////////TODO necessary? + frame_.add (logExpander_); +// frame_.add (*theLog_); +// frame_.check_resize(); + frame_.show_all(); } return *theLog_; } diff --git a/src/gui/panel/infobox-panel.hpp b/src/gui/panel/infobox-panel.hpp index eeaa43df9..e000252a1 100644 --- a/src/gui/panel/infobox-panel.hpp +++ b/src/gui/panel/infobox-panel.hpp @@ -68,6 +68,7 @@ namespace panel{ Gtk::ButtonBox buttons_; Gtk::Button button_1_; Gtk::Frame frame_; + Gtk::Expander logExpander_; std::unique_ptr theLog_; diff --git a/src/gui/widget/error-log-display.hpp b/src/gui/widget/error-log-display.hpp index 383677e44..44d654cad 100644 --- a/src/gui/widget/error-log-display.hpp +++ b/src/gui/widget/error-log-display.hpp @@ -85,7 +85,7 @@ namespace widget { : Gtk::ScrolledWindow() , textLog_{} { - set_size_request (200, 50); + set_size_request (200, 80); // must be > 50 for the scrollbar to work properly set_border_width (10); set_shadow_type (Gtk::SHADOW_NONE); @@ -93,7 +93,6 @@ namespace widget { set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); this->add (textLog_); textLog_.set_editable (false); - } diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 729416187..378919733 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -1744,8 +1744,46 @@ - - + + + + + + + + + + + + + + +

+ ...ob beim Expand/Collapse das umschließende Widget resized werden soll +

+ + +
+
+
+ + + + + + + + + + + + + + +

...wesentliches Struktur-Element:

+

der Parent-Container ist für das expand/collapse zuständig

+ +
@@ -2106,7 +2144,7 @@ - + @@ -2119,7 +2157,8 @@ oder sie prüfen den Zustand und machen nichts, wenn das Widget nicht da ist

-
+ +