InfoBox: add a simple text display widget
This commit is contained in:
parent
a91b444ade
commit
2d2a549341
3 changed files with 110 additions and 43 deletions
|
|
@ -27,40 +27,50 @@
|
|||
|
||||
#include "gui/gtk-base.hpp"
|
||||
#include "gui/panel/infobox-panel.hpp"
|
||||
#include "lib/format-string.hpp"
|
||||
|
||||
using util::_Fmt;
|
||||
using Glib::ustring;
|
||||
|
||||
namespace gui {
|
||||
namespace panel{
|
||||
|
||||
InfoBoxPanel::InfoBoxPanel (workspace::PanelManager& panelManager, Gdl::DockItem& dockItem)
|
||||
: Panel(panelManager, dockItem, getTitle(), getStockID())
|
||||
, twoParts_(Gtk::ORIENTATION_VERTICAL)
|
||||
, buttons_()
|
||||
, frame_("UI Integration Experiments")
|
||||
, scroller_()
|
||||
, twoParts_{Gtk::ORIENTATION_VERTICAL}
|
||||
, buttons_{}
|
||||
, frame_{"UI Integration Experiments"}
|
||||
, scroller_{}
|
||||
, textLog_{}
|
||||
{
|
||||
twoParts_.pack_start(frame_);
|
||||
twoParts_.pack_start(buttons_, Gtk::PACK_SHRINK);
|
||||
|
||||
buttons_.set_layout(Gtk::BUTTONBOX_START);
|
||||
buttons_.set_layout (Gtk::BUTTONBOX_START);
|
||||
|
||||
// buttons to trigger experiments
|
||||
button_1_.set_label("_bang");
|
||||
button_1_.set_label ("_bang");
|
||||
button_1_.set_use_underline();
|
||||
button_1_.set_tooltip_markup("<b>Experiment 1</b>:\ntrigger Proc-GUI roundtrip");
|
||||
button_1_.set_tooltip_markup ("<b>Experiment 1</b>:\ntrigger Proc-GUI roundtrip");
|
||||
button_1_.signal_clicked().connect(
|
||||
mem_fun(*this, &InfoBoxPanel::experiment_1));
|
||||
buttons_.add(button_1_);
|
||||
buttons_.add (button_1_);
|
||||
//(End)buttons...
|
||||
|
||||
frame_.add(scroller_);
|
||||
frame_.set_border_width(5);
|
||||
frame_.add (scroller_);
|
||||
frame_.set_border_width (5);
|
||||
|
||||
scroller_.set_shadow_type(Gtk::SHADOW_NONE);
|
||||
scroller_.set_border_width(10);
|
||||
// scroller_.add(canvas_);///////////////////////////TODO add text display box here...
|
||||
scroller_.set_shadow_type (Gtk::SHADOW_NONE);
|
||||
scroller_.set_border_width (10);
|
||||
|
||||
scroller_.add (textLog_);
|
||||
// the vertical scrollbar will always be necessary....
|
||||
scroller_.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
|
||||
|
||||
textLog_.set_editable (false);
|
||||
|
||||
// show everything....
|
||||
this->add(twoParts_);
|
||||
this->add (twoParts_);
|
||||
this->show_all();
|
||||
}
|
||||
|
||||
|
|
@ -82,6 +92,12 @@ namespace panel{
|
|||
InfoBoxPanel::experiment_1()
|
||||
{
|
||||
frame_.set_label("Experiment 1... BANG");
|
||||
|
||||
static uint bangNo{0};
|
||||
static _Fmt msgTemplate{"Bang #%d\n"};
|
||||
auto buff = textLog_.get_buffer();
|
||||
auto pos = buff->insert (buff->end(), ustring{msgTemplate % ++bangNo});
|
||||
textLog_.scroll_to (pos);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace panel{
|
|||
Gtk::Button button_1_;
|
||||
Gtk::Frame frame_;
|
||||
Gtk::ScrolledWindow scroller_;
|
||||
////////////////////////////////////////////////TICKET #1047 : as a temporary solution, host the error log here
|
||||
Gtk::TextView textLog_; ////////////TICKET #1047 : as a temporary solution, host the error log here
|
||||
////////////////////////////////////////////////TICKET #1102 : build a message display box widget
|
||||
|
||||
void experiment_1();
|
||||
|
|
|
|||
|
|
@ -1391,7 +1391,17 @@
|
|||
<node CREATED="1504203746239" ID="ID_697660682" MODIFIED="1504203776630" TEXT="Scroll-Pane">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node CREATED="1504203749815" ID="ID_1057483680" MODIFIED="1504203782093" STYLE="fork" TEXT="Textanzeige-Box"/>
|
||||
<node CREATED="1504203749815" ID="ID_1057483680" MODIFIED="1504203782093" STYLE="fork" TEXT="Textanzeige-Box">
|
||||
<node CREATED="1504215911647" ID="ID_1066629131" MODIFIED="1504215914707" TEXT="GtkTextView"/>
|
||||
<node CREATED="1504215958961" ID="ID_55797578" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-textview-buffer.html.en#textview-formatting" MODIFIED="1504215966443" TEXT="Formattierung">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1504216221389" ID="ID_355253225" MODIFIED="1504216223713" TEXT="Marks">
|
||||
<node CREATED="1504216224349" ID="ID_1372118244" MODIFIED="1504216245727" TEXT="was ist die "insert"-Mark?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1504203754175" ID="ID_580465154" MODIFIED="1504203763065" TEXT="Fehler-Level erkennen"/>
|
||||
<node CREATED="1504203763606" ID="ID_877984616" MODIFIED="1504203769745" TEXT="in ein Widget verpacken"/>
|
||||
</node>
|
||||
|
|
@ -2648,8 +2658,8 @@
|
|||
</node>
|
||||
<node CREATED="1477784829157" ID="ID_1998357180" MODIFIED="1477784838700" TEXT="Icon-Laden modernisieren"/>
|
||||
<node CREATED="1477784821925" ID="ID_1871474250" MODIFIED="1488423306858" TEXT="Styling aufräumen">
|
||||
<node CREATED="1477784846162" ID="ID_1164942946" MODIFIED="1477784889994" TEXT="siehe Info zum CssProvider">
|
||||
<arrowlink DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1846;-61;" ID="Arrow_ID_1610122569" STARTARROW="None" STARTINCLINATION="-227;-646;"/>
|
||||
<node CREATED="1477784846162" ID="ID_1164942946" MODIFIED="1504215608190" TEXT="siehe Info zum CssProvider">
|
||||
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1600;-25;" ID="Arrow_ID_1610122569" STARTARROW="None" STARTINCLINATION="-227;-646;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -18111,6 +18121,7 @@
|
|||
</node>
|
||||
<node CREATED="1477785856731" ID="ID_63204089" MODIFIED="1477785865998" TEXT="Rückgabewert: true == fertig behandelt"/>
|
||||
</node>
|
||||
<node CREATED="1504215708147" ID="ID_975007807" MODIFIED="1504215714526" TEXT="Widget">
|
||||
<node CREATED="1477526858307" ID="ID_676269117" MODIFIED="1477526862502" TEXT="custom widget">
|
||||
<node COLOR="#ca1b00" CREATED="1477526864162" ID="ID_1385929770" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1477788908756" TEXT="Beispiel">
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1385929770" ENDARROW="Default" ENDINCLINATION="1055;0;" ID="Arrow_ID_1314305180" SOURCE="ID_426069181" STARTARROW="None" STARTINCLINATION="1055;0;"/>
|
||||
|
|
@ -18133,30 +18144,7 @@
|
|||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1446515847047" ID="ID_290915762" MODIFIED="1488423307345" TEXT="GtkCssProvider">
|
||||
<node CREATED="1446515865029" ID="ID_1503616150" MODIFIED="1446515869624" TEXT="parsing errors"/>
|
||||
<node CREATED="1477784584821" ID="ID_1810760662" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1477784889994" TEXT="Beispiel im GTKmm-Guide (custom widget)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
in der Implementierung, mywidget.cc
|
||||
</p>
|
||||
<p>
|
||||
ist eine komplette Sequenz, wie man einen CSS-StyleProvider setzt
|
||||
</p>
|
||||
<p>
|
||||
und auch ein Signal für Parse-Fehler anschließt
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1846;-61;" ID="Arrow_ID_1610122569" SOURCE="ID_1164942946" STARTARROW="None" STARTINCLINATION="-227;-646;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1476375676818" ID="ID_1029920942" MODIFIED="1476375683685" TEXT="Canvas">
|
||||
<node CREATED="1476375676818" ID="ID_1029920942" MODIFIED="1504215692514" TEXT="Canvas">
|
||||
<node CREATED="1476375696215" ID="ID_1397403295" MODIFIED="1476375700698" TEXT="GtkDrawingArea">
|
||||
<node CREATED="1476375709157" ID="ID_981405457" MODIFIED="1476375712568" TEXT="custom drawing"/>
|
||||
</node>
|
||||
|
|
@ -18224,7 +18212,7 @@
|
|||
<arrowlink DESTINATION="ID_1600280983" ENDARROW="Default" ENDINCLINATION="893;0;" ID="Arrow_ID_1707544457" STARTARROW="None" STARTINCLINATION="893;0;"/>
|
||||
</node>
|
||||
<node CREATED="1477788855234" ID="ID_426069181" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1477788908756" TEXT="read the example code of a custom widget">
|
||||
<arrowlink DESTINATION="ID_1385929770" ENDARROW="Default" ENDINCLINATION="1055;0;" ID="Arrow_ID_1314305180" STARTARROW="None" STARTINCLINATION="1055;0;"/>
|
||||
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_1385929770" ENDARROW="Default" ENDINCLINATION="1055;0;" ID="Arrow_ID_1314305180" STARTARROW="None" STARTINCLINATION="1055;0;"/>
|
||||
</node>
|
||||
<node CREATED="1477789514451" ID="ID_84890591" LINK="https://www.cairographics.org/documentation/cairomm/reference/" MODIFIED="1477789523593" TEXT="Cairomm API-doc"/>
|
||||
</node>
|
||||
|
|
@ -18500,6 +18488,69 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1504215729848" ID="ID_518260540" MODIFIED="1504215733451" TEXT="howto">
|
||||
<node CREATED="1446515847047" FOLDED="true" ID="ID_290915762" MODIFIED="1504215748214" TEXT="GtkCssProvider">
|
||||
<node CREATED="1446515865029" ID="ID_1503616150" MODIFIED="1446515869624" TEXT="parsing errors"/>
|
||||
<node CREATED="1477784584821" ID="ID_1810760662" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1504215608190" TEXT="Beispiel im GTKmm-Guide (custom widget)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
in der Implementierung, mywidget.cc
|
||||
</p>
|
||||
<p>
|
||||
ist eine komplette Sequenz, wie man einen CSS-StyleProvider setzt
|
||||
</p>
|
||||
<p>
|
||||
und auch ein Signal für Parse-Fehler anschließt
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1600;-25;" ID="Arrow_ID_1610122569" SOURCE="ID_1164942946" STARTARROW="None" STARTINCLINATION="-227;-646;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1504215750653" ID="ID_110831069" MODIFIED="1504215754256" TEXT="Textanzeige">
|
||||
<node CREATED="1504215755484" ID="ID_1858414199" MODIFIED="1504215760087" TEXT="TextView widget"/>
|
||||
<node CREATED="1504215761547" ID="ID_925639969" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-textview-examples.html.en" MODIFIED="1504215815883">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Beispiel im <font color="#d4020a">Guide</font>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1504215825762" ID="ID_429138159" MODIFIED="1504215831637" TEXT="zur letzten Zeile scrollen">
|
||||
<node CREATED="1504215849336" ID="ID_832996389" MODIFIED="1504215853816" TEXT="Marker setzen">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1504215832746" ID="ID_751207346" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-multithread-example.html.en" MODIFIED="1504215873156">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Multithreded-Beispiel
|
||||
</p>
|
||||
<p>
|
||||
im Guide demonstriert das
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1482365415326" HGAP="87" ID="ID_886002365" MODIFIED="1482365429434" TEXT="Standard C++" VSHIFT="-21">
|
||||
<node CREATED="1482365430484" ID="ID_1414724077" MODIFIED="1482365432879" TEXT="chrono">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1482365434203" ID="ID_1026694670" MODIFIED="1482365437852" TEXT="lernen">
|
||||
|
|
|
|||
Loading…
Reference in a new issue