IonicWind Software

Aurora Compiler => Update Announcements => Topic started by: Ionic Wind Support Team on September 25, 2006, 01:54:33 AM

Title: Aurora Beta 1 Rev 1
Post by: Ionic Wind Support Team on September 25, 2006, 01:54:33 AM
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.
Title: Re: Aurora Beta 1 Rev 1
Post by: Ionic Wind Support Team on September 25, 2006, 02:07:38 AM
Source library updated.  Download using the same directory/password given to you when you purchased the source license.
Title: Re: Aurora Beta 1 Rev 1
Post by: ExMember001 on September 25, 2006, 03:06:05 AM
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 ;)
Title: Re: Aurora Beta 1 Rev 1
Post by: Ionic Wind Support Team on September 25, 2006, 03:40:21 AM
Because you're not supposed to access that variable directly.  Use the Detach method.
Title: Re: Aurora Beta 1 Rev 1
Post by: Steven Picard on September 25, 2006, 09:29:12 AM
The About screen and the new icons look really nice.  Thanks Kale!
Title: Re: Aurora Beta 1 Rev 1
Post by: Ionic Wind Support Team on September 25, 2006, 10:43:40 AM
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).
Title: Re: Aurora Beta 1 Rev 1
Post by: Kale on September 25, 2006, 11:35:04 AM
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.
Title: Re: Aurora Beta 1 Rev 1
Post by: Ionic Wind Support Team on September 25, 2006, 11:43:33 AM
There was a problem with palletes on that icon so the new one didn't make it.  See the post in the developers forum.
Title: Re: Aurora Beta 1 Rev 1
Post by: kryton9 on September 25, 2006, 03:36:05 PM
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!!
Title: Re: Aurora Beta 1 Rev 1
Post by: J B Wood (Zumwalt) on September 25, 2006, 06:39:37 PM
Simply, thank you.
Title: Re: Aurora Beta 1 Rev 1
Post by: Zen on September 26, 2006, 02:03:34 AM
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