Home » Community » Newbie corner » Some code to add an icon in statusbar
Some code to add an icon in statusbar [message #31468] |
Fri, 04 March 2011 19:23 |
 |
BioBytes
Messages: 308 Registered: October 2008 Location: France
|
Senior Member |
|
|
Hi all,
U++ is definitively a smart IDE. This snippet code shows how to set a small icon in a statusbar and to refresh it programatically.
Header file
#ifndef _essaiStatusBar_essaiStatusBar_h
#define _essaiStatusBar_essaiStatusBar_h
#include <CtrlLib/CtrlLib.h>
using namespace Upp;
#define LAYOUTFILE <essaiStatusBar/essaiStatusBar.lay>
#include <CtrlCore/lay.h>
#define IMAGEFILE <essaiStatusBar/essaiStatusBar.iml>
#include <Draw/iml_header.h>
struct essaiDisplay:Display
{
bool connected;
void setStatus(bool flag);
virtual void Paint(Draw& w,const Rect& r,const Value& q,Color ink,Color paper,dword style)const;
};
class essaiStatusBarMainWin : public WithessaiStatusBarMainWinLayout<TopWindow> {
public:
typedef essaiStatusBarMainWin CLASSNAME;
essaiStatusBarMainWin();
private:
void stateAction();
essaiDisplay firstDisplay;
InfoCtrl first;
StatusBar essaiSb;
};
#endif
main file (cpp)
#include "essaiStatusBar.h"
#define IMAGECLASS qsEssaiSb
#define IMAGEFILE <essaiStatusBar/essaiStatusBar.iml>
#include <Draw/iml.h>
void essaiDisplay::setStatus(bool flag)
{
connected = flag;
}
void essaiDisplay::Paint(Draw& w,const Rect& r,const Value& q,Color ink,Color paper,dword style)const
{
if(!connected)w.DrawImage(r,qsEssaiSb::qsNonConnected);
else w.DrawImage(r,qsEssaiSb::qsConnected);
}
void essaiStatusBarMainWin::stateAction()
{
if(PromptYesNo("Enable connection?")==1)firstDisplay.setStatus(true);
else firstDisplay.setStatus(false);
}
essaiStatusBarMainWin::essaiStatusBarMainWin()
{
CtrlLayout(*this, "SetStatusBar");
SetRect(10,10,400,300);
Sizeable().Zoomable().CenterScreen();
Icon(qsEssaiSb::qsUsers);
firstDisplay.setStatus(false);
first.Set(PaintRect(firstDisplay));
essaiSb.AddFrame(first.Left(30));
AddFrame(essaiSb);
AddFrame(BottomSeparatorFrame());
stateButton<<=THISBACK(stateAction);
}
GUI_APP_MAIN
{
SetLanguage(GetSystemLNG());
essaiStatusBarMainWin().Run();
}
I have joined the source code as a zipped file. Hoping it could help some beginners.
Comments are welcome
regards
Biobytes
|
|
|
Goto Forum:
Current Time: Sun Apr 27 13:07:53 CEST 2025
Total time taken to generate the page: 0.01119 seconds
|