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 » U++ community news and announcements » 2020.2rc1
Re: 2020.2rc1 [message #55178 is a reply to message #55175] Thu, 15 October 2020 22:18 Go to previous messageGo to previous message
Klugier is currently offline  Klugier
Messages: 1076
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

It seems that we have one more problem with template generation. By default in generating CtrlLib and Skylark application there is "using namespace Upp;" clausal in header file, which is wrong for obvious reasons.

Here is app generated with the template:
// ClockApp.h
#ifndef _Clock_Clock_h
#define _Clock_Clock_h

#include <CtrlLib/CtrlLib.h>

using namespace Upp;

#define LAYOUTFILE <Clock/Clock.lay>
#include <CtrlCore/lay.h>

class ClockApp : public WithClockLayout<TopWindow> {
public:
	ClockApp();
};

#endif

// main.cpp
#include "Clock.h"

ClockApp::ClockApp()
{
	CtrlLayout(*this, "Window title");
}

GUI_APP_MAIN
{
	ClockApp().Run();
}


It should be:
// ClockApp.h
#ifndef _Clock_Clock_h
#define _Clock_Clock_h

#include <CtrlLib/CtrlLib.h>

namespace Upp {

#define LAYOUTFILE <Clock/Clock.lay>
#include <CtrlCore/lay.h>

class ClockApp : public WithClockLayout<TopWindow> {
public:
   ClockApp();
};

}

#endif

// main.cpp
#include "ClockApp.h"

using namespace Upp;

ClockApp::ClockApp()
{
	CtrlLayout(*this, "Window title");
}

GUI_APP_MAIN
{
	ClockApp().Run();
}


There is one option I would see there, but this is out of release scope. Upp namespace agnostic template (as option):
// ClockApp.h
#ifndef _Clock_Clock_h
#define _Clock_Clock_h

#include <CtrlLib/CtrlLib.h>

namespace Upp
{
	#define LAYOUTFILE <Clock/Clock.lay>
	#include <CtrlCore/lay.h>
}
	
class ClockApp : public Upp::WithClockLayout<Upp::TopWindow> {
public:
	ClockApp();
};

#endif

// Clock.h
#include "ClockApp.h"

ClockApp::ClockApp()
{
	CtrlLayout(*this, "Window title");
}

GUI_APP_MAIN
{
	ClockApp().Run();
}

This option is the best for advanced users. In almost 90% your app shouldn't belong to Upp namespace. You could mix it easier with other namespaces like std. Only Core elements should belong there, but for simplicity we just put app code there...

In Turtle everything is fine. I think Oblivion fixed it some time ago.


U++ - one framework to rule them all.

[Updated on: Thu, 15 October 2020 22:32]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: clang windows -FPIC not supported
Next Topic: 2020.2rc2
Goto Forum:
  


Current Time: Tue May 14 16:26:13 CEST 2024

Total time taken to generate the page: 0.02365 seconds