January 26, 2023, 09:48:14 PM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


Aurora Beta 1 Rev 1

Started by Ionic Wind Support Team, September 25, 2006, 01:54:33 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ionic Wind Support Team

The Aurora compiler has just been updated to Beta 1 Rev 1.  To get the update redownload from the link provided when purchasing and reinstall the compiler.

Changes/Additions
-------------------------
- enum keyword added for creating enumerations.
- private:, public:, and protected: keywords added for class member/method attributes.
- C2DSurface::GetSurfacePointer and GetSurfacePitch implementation moved from the header files.
- Two parser bugs were addressed.
- Include files modified for new class security attributes.
- CControl::GetFGColor added.
- CControl::GetBGColor added.
- CWindow::GetCursor added.
- ClassView is more functional. Double click to bring up implementation. Right click on an Aurora class method to select 'help'.
- A bug in ClassView processing fixed.
- Many icons for the IDE were changed, thanks to Kale. Many more to go ;)
- More docs added. Mostly with intrinsic functions. 
- The about box now has a new splash logo, again thanks to Kale.

Notes on enum:
---------
The enum keyword creates an enumeration by defining constants in a list and an associated type define.

enum DaysOfWeek {monday, tuesday, wednesday, thursday, friday, saturday, sunday}
DaysOfWeek day = monday;
if(day == tuesday)
{
}

The name of the enumeration is type defined to integer.  Each list of enumerated values is giving the starting value of 1.  You can override this value and each successive value will be the previous + 1.  For example:

enum msgids
{
    msg_close = 10,
    msg_open,
    msg_save,
    msg_quit,
    msg_edit = 100,
    msg_cut,
    msg_copy
}

msg_open = 11 and msg_cut = 101 in this case.

Notes on security attributes
--------------------------------------
The new keywords public, private and protected control how a class method or member is allowed to be accessed.  Aurora's keywords function pretty much the same as the C++ counterparts, since they are well documented on the net.  Each attribute affects all of the methods/member variables following.  Small example:


class MyClass
{
       declare _MyClass();
protected:
       declare Foo();
       declare Bar();
private:
       declare internal_destruct();
       int m_nRefCount;
public:
       string m_sTitle;
}


The default access is 'public' so the destructor of the class is accessable by any part of your program.  Both the Foo and Bar methods are only accessable by this class and classes derived from this class.  The internal_destruct method and m_nRefCount member variable are only accessable to instances of this class.  In other words from within one of this classes methods.

The compiler generates errors when you try to access a method or member that you're not allowed to.  This feature of OOP protects your classes from someone mucking about with the internals of a class.

Using the class above if you were to try and direcly access the m_nRefCount variable

MyClass oMC;
oMC.m_nRefCount = 1;

The compiler would announce:

"Cannot access private class variable".

I am sure there will be more questions on these attributes, please post them in an appropriate topic in the General board.  Don't worry I can walk you through.

Other notes:
-----------------
I didn't have much time for anything else this update. So have patience if something you're waiting for hasn't appeaed yet ;)

The demo version has been updated and I will have a source library update by tomorrow.

Have fun!
Paul.
Ionic Wind Support Team

Ionic Wind Support Team

Source library updated.  Download using the same directory/password given to you when you purchased the source license.
Ionic Wind Support Team

ExMember001

September 25, 2006, 03:06:05 AM #2 Last Edit: September 25, 2006, 03:07:38 AM by krypt
I have a problem with m_hMenu, the compiler said it cannot access the protected class variable
deleting the Private: from the Gui.inc seem to correct that problem.

Great additions in this release ;)

Ionic Wind Support Team

Because you're not supposed to access that variable directly.  Use the Detach method.
Ionic Wind Support Team

Steven Picard

The About screen and the new icons look really nice.  Thanks Kale!

Ionic Wind Support Team

September 25, 2006, 10:43:40 AM #5 Last Edit: September 25, 2006, 11:04:05 AM by Paul Turley
Actually it was m_hMenuTemp that was supposed to begin the private section of the menu class.  I'll modify it for the next revision. 

[EDIT] I updated both the demo and release downloads to change this.  It was a small change so no need to wait for the next revision. If it affects you just redownload or remove the 'private' keyword in that class description (gui.inc).
Ionic Wind Support Team

Kale

One small thing, the main IDE icon isn't correct. It seems to have been badly cropped around the edges and isn't using any of the nice 32bit'ness that the original file icon i drew had. It seems to be scaling up the 16x16 for all sizes. (I run my desktop with 48x48 icons selected). Also the 16x16 in the start menu looked choppy.

Ionic Wind Support Team

There was a problem with palletes on that icon so the new one didn't make it.  See the post in the developers forum.
Ionic Wind Support Team

kryton9

Thanks for the update Paul, will be fun to play with the security for the methods.

Nice work too Kale, I like the look of all the stuff!!

J B Wood (Zumwalt)


Zen

Hey new update is looking great Paul and Kale ;)

Just one thing i have noticed, nothing major, just that the "Make Executable" button can be clicked (i.e. its enabled) when no source or project is opened. It doesnt do anything, no errors either, just thought i would mention it anyway.

Lewis