|
|
Home » Developing U++ » UppHub » MessageCtrl: A passive notifications ctrl and manager. (A a usefule CtrlLib add-on.)
Re: MessageCtrl: A passive notifications ctrl and manager. [message #49603 is a reply to message #49602] |
Sun, 11 March 2018 12:32   |
Oblivion
Messages: 1206 Registered: August 2007
|
Senior Contributor |
|
|
Hello Luigi,
The thing is, MessageCtrl is simply a manager, there is no real reason to add it to a "layout".
IT is not a Ctrl derived class.
Messages will resize automatically depending on the size of it's parent.
You instantiate it in your, say, TopWindow, and then set a target (a Ctrl) for it to attach:
class MyWindow : public TopWindow {
MessageCtrl messages;
DocEdit editor;
RichEdit richeditor;
void DisplayEditorErrorMessage() {
messages.Error(editor, "This is an error message.");
}
void DisplayRichEditorSuccessMessage() {
messages.Success(richeditor, "This is a success message.");
}
// Other members, constructors, etc...
};
Think of it like a Prompt. You do not use them with layout. Nor MessageCtrl. (Of course you can also attach messages to layouted ctrls)
Example code provided with the MessageCtrl demonstrates that. (It adds top message boxes to the window itself, and the bottom meassage box to the editor widget.)
I've written a new example to clarify the behaviour. Please find the attached example. 
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Sun, 11 March 2018 18:04] Report message to a moderator
|
|
|
|
|
|
|
|
|
Re: MessageCtrl: A passive notifications ctrl and manager. [message #51504 is a reply to message #51503] |
Fri, 05 April 2019 14:50   |
Oblivion
Messages: 1206 Registered: August 2007
|
Senior Contributor |
|
|
Hello Mahanthesh, and welcome to the U++ forums!
MessageCtrl is using Qtf. And it can be formatted using Qtf syntax. You can even put images or tables in it (if you really need such options...)
See here for more details on the format: https://www.ultimatepp.org/srcdoc$RichText$QTF_en-us.html
As for your question. Here is a modified version of the reference code:
#include <CtrlLib/CtrlLib.h>
#include <MessageCtrl/MessageCtrl.h>
using namespace Upp;
class Messages : public TopWindow {
MessageCtrl msg;
DocEdit editor;
Button button1, button2;
public:
Messages()
{
Title("U++ Message Boxes (Passive Notifications)");
SetRect(0,0, 640, 480);
Sizeable().Zoomable().CenterScreen();
SetMinSize({100, 100});
auto action = [=](int id) {
switch(id) {
case IDYES: PromptOK("You've chosen 'yes'"); break;
case IDNO: PromptOK("You've chosen 'no'"); break;
}
};
Add(editor.HSizePosZ().VSizePos(0, 24));
Add(button1.SetLabel("Test").RightPos(4).BottomPos(4));
Add(button2.SetLabel("Clear").LeftPos(4).BottomPos(4));
button2 << [=] { msg.Clear(this); }; // Selective clearing.
button1 << [=] {
msg.Animation()
.Top()
.Information(*this, "This is a time-constrained information message. It will disappear in 5 seconds.", Null, 5)
.Success(*this, "This is a success message.")
.Warning(*this, "This is a warning message.")
.Error(*this, "This is an error message.")
.Information(*this, "[C [4 This information message is using 16 pt courier font...]") // <-- Different font face and font size...
.Bottom()
.AskYesNo(editor, "This is a question box 'in' the text editor with "
"[^https:www`.ultimatepp`.org^ l`i`n`k]"
" support. Would you like to continue?",
action,
callback(LaunchWebBrowser)
);
};
}
};
GUI_APP_MAIN
{
Messages().Run();
}
Result should be (this is on Linux):

If you have more questions about the MesasgeCtrl, I'll try to answer them.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Fri, 05 April 2019 14:51] Report message to a moderator
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Tue May 13 04:53:47 CEST 2025
Total time taken to generate the page: 0.03119 seconds
|
|
|