Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
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 is currently offline  BioBytes
Messages: 307
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
Previous Topic: Writing Float big-endian on Windows
Next Topic: GridCtrl column's .Edit
Goto Forum:
  


Current Time: Sat May 04 22:04:51 CEST 2024

Total time taken to generate the page: 0.02320 seconds