Jump to content


Photo

GUI API Version 1.05 (Updated)


  • Please log in to reply
24 replies to this topic

#1 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 19 February 2012 - 08:12 AM

TITLE: The GUI API
VERSION: 1.05
DESCRIPTION: The GUI API extension provides you with an easy means to develop complex and dynamic interfaces, advanced event handling, and a completely new way to design and organize your code.
GM VERSION: 8.1 (Possibly compliant with earlier versions, but not sure)
REGISTERED: YES (requires PRO)
FILE TYPE: .zip
FILE LINK: http://www.upurload....7942352cc76.zip

***CREDIT must be given to iam1me if used. However, you are completely free to use, modify, extend, and redistribute (requiring due credit be given to me) this code as you like.***

***UPDATED(2/22/12):
  • A bug was fixed involving the use of sprites
  • A small memory leak was fixed
  • Labels have been added to the GUI API
***

For the past couple of weeks I have been working on a GUI API using pure GML. My inspiration for this extension comes both from my programming background, especially with Java, and the fact that I am using GM for a semester long project and so I needed to have a strong, organized, and flexible code base from which to build upon. I suspect that the people who will be most inclined to use this extension are my fellow programmers - and it will also benefit those who want to move from GM to other languages, especially Java.

Now, there are many Widget extensions available that provide you with things like menus, text boxes, fancy buttons, etc. The GUI API, however, is a bit different. This extension (currently) provides the following: panels, layout managers, advanced (& custom) event handling, and essentially a whole new way of designing and organizing your code. Of course, widgets are an essential part of any GUI, and so these will be added in as I have time and if I see that people are interested. I maybe incorporating BBGaming's Game Widgets extension, modified for this API, in a later release. Ultimately, I plan on releasing this as a GEX - but for now at least I will leave it as a Script extension. Unfortunately, when I exported the scripts it removed all of my folders... but its still fairly organized due to a consistent naming convention.

The zip file contains a few different files: GUI_API.gml, GUI_API_CONSTANTS.txt, GA_example.gm81, GA_example.exe, and screen_shot_example.png. The names should be fairly self-explanatory. When using the GUI_API, you must import both the GUI_API.gml file as well as the GUI_API_CONSTANTS.txt file. You must also make sure to call the script include_GUI_API() somewhere in your code BEFORE attempting to use anything else in the extension.

GUI_Object

The GUI_Object is the base object for all of the extensions GUI instances. It routes all of the local event handling to appropriate scripts such that each instance is automatically synced with the advanced event handling system provided by the GUI API. The user of this GUI_API should NOT change or add events to the GUI_Object - rather they should use the event handling system which I will describe below. Nor, for that matter should you inherit from this instance - rather create an instance of it and make changes only to the instance.

A new GUI_Object should be created using the script: GA_object_create(x,y,width,height). This script will return the id of a new instance of the GUI_Object. If you would like to specify a draw script, there is a draw_script variable for each GUI_Object which you are free to set - but do NOT clear or add an event script using object_event_add.

If a change is made to your instance which would cause a visual difference and has been added to a panel, call GA_object_invalidate(GUI_Object id) in order to invalidate the object and its parents so that they will be redrawn.

A GUI_Object can very easily be setup to only draw itself in certain views, if views are enabled. Simply call the GA_object_set_views(GUI_Object id, view flags); to specify which views it should draw itself under. By default it will draw itself under view zero. The script accepts an integer, and it uses the first 8 bits to represent each of the 8 views. The constants file contains constants such as VIEW_0, VIEW_1, VIEW_2, etc. Use these as your parameter. If you want to use multiple views for a single GUI_Object, simply OR them together. For instance, if I wanted my GUI_Object called example to be drawn in views 3 & 7, I would write: GA_object_set_views(example, VIEW_3 | VIEW_7). This can be used to easily make a Heads Up Display!!!

LABELS (As of Version 1.05)

Most GUIs require the use of labels, of text. Sometimes a sprite can suffice, but not if that text needs to change throughout the game, like a life/score counter. You can easily create a label by using the GA_label_create(text,font id) command. You can customize a label by settings its various properties: autoresize, color, bgcolor, font, and text. You can set these using commands like GA_label_set_color(label id, color) or GA_label_set_font(label id, font id). Remember that, for font, -1 defaults to 12pt Arial.

PANELS

A panel is a GUI_Object with some added variables and functionality. A panel is a special GUI_Object which can contain other GUI_Objects, and arrange them using a Layout. To create a new panel use the GA_panel_create() script. Do not place anything apart from GUI_Objects into a panel. You may place panels within panels.

Instances that are inserted into a panel will be clipped in so far as they exceed the visual boundaries of the panel. Instances will also no longer draw themselves, rather the panel will draw them as need be. The GUI_API takes advantage of surfaces in order to limit the amount of drawing done every frame. A panel will only redraw itself and its children if it becomes invalidated. Note: if a child becomes invalidated it will invalidate its parent.

Note: since a panel controls the drawing of its children, only the panels view settings will be taken into account. Thus if the panel is setup to be drawn in view 0, but a child is setup to be drawn in view 1, the child will be drawn in view 0 and nothing will be drawn in view 1.

Panels provide coding organization. When a panel is destroyed, it destroys all of its children. This limits how many instance ids you need to keep track of. Of course, if you don't want one destroyed, you can always remove it from the panel before hand.

To add an item use the GA_panel_child_add(panel id, child id) script, and to remove an item use the GA_panel_child_remove(panel id, child id) script.

More importantly, panels provide visual organization using Layouts. Layouts automatically organize a panels children based upon various settings. Layouts are dynamic: they organize the children of a panel as they are added/removed/etc. The GUI API currently provides two Layouts: the FlowLayout & StackLayout.

To set a layout to a panel, use the GA_panel_set_layout(panel id, layout id) script.

FLOW LAYOUT

The Flow Layout arranges a panels children on row first basis. By default, the flow layout will arrange children going from left to right, top to bottom, and left aligned. When one row is filled, it goes to the next row. To create a new flow layout, use the GA_layout_flow_create() script.

You can customize the flow layout by using such scripts as GA_layout_flow_set_valign(layout id, valign value) & GA_layout_flow_set_hgap(layout id, horizontal gap in pixels). You can set the following settings: halign, valign, hdir, vdir, hgap, and vgap.

For halign use the constants: LEFT, CENTER, RIGHT. For valign use: TOP, CENTER, BOTTOM. For hdir use : LEFT_TO_RIGHT & RIGHT_TO_LEFT. For vdir use: TOP_TO_BOTTOM & BOTTOM_TO_TOP.

hgap can be any number (should be positive) and represents the # of pixels between any two items horizontally. vgap is very similar but represents the # of pixels between rows vertically.

STACK LAYOUT

The Stack Layout is very similar to the Flow Layout, but inversed. The Stack Layout lays out items column first. By default it lays out items going from the top down, left to right, top-left aligned. It has all the same variables and settings as the Flow Layout, though they are implemented slightly differently. To create a new stack layout, use the GA_layout_stack_create() script.

By placing panels inside of panels and giving each panel different layouts, you can achieve many different visual affects.

In the example file included in the .zip, I combine the flow and stack layouts in order to vertically and horizontally center 3 panels of different colors and size.

ADVANCED EVENT HANDLING

This will perhaps be the biggest attraction for my GUI API. The event handling provided by GML is extremely limiting: they aren't dynamic, they must be assigned to objects rather than instances, and only one instance can listen to any given event (apart from global events). You are also extremely limited in writing custom events. My GUI API breaks all of these barriers, and it doesn't use up any of your 15 custom user events.

In order for an instance to fire events, and have other instances listen for these events, it must have a variable called event_listeners which holds the id of a valid ds_map.

In order to add a listener to an event, call GA_event_add_listener(source id, event id, listener id, script id). The Source is the instance that fires the event, the event id is a number that uniquely identifies the event (example: ev_left_button), the listener id is the id of an instance that is responding to the event, and script id is the id of a script to run when the event is fired. When the event is fired, the scope will be set to the listener before running the script. Any number of listeners can be added to any event, though each listener can only have one script per event per source.

While the event id you specify can be any of the built in event constants, it can also be a custom id for a custom event. Just make sure that your event ids don't overlap with the built in event types or the GUI_APIs constants. I suggest starting off custom event ids at 2000.

An event can then be fired using the GA_event_fire(source id, event id, event_args id) script. Event_args should be an instance of the EventArgs Object, which you can create by calling GA_event_args_create(source id, event id). When an event is fired, the event args is put onto a global event stack. This allows listening scripts to grab data about an event. This also allows you to provide as much information as you need about an event, by adding local variables to the event args instance. In order to grab the latest event args instance, use GA_event_get_args(); Make sure that after you call the fire function, that you then delete the event_args instance.

Within the GUI_API, I use this to provide a few different custom events: ev_layout_modified, ev_child_added, and ev_child_removed.

Even if you don't use any of the rest of the GUI_API, you can use this in isolation of the rest.




Please tell me what you think. Will you use it? How would you like to see it improved? Any bugs?


iam1me

Edited by iam1me, 22 February 2012 - 01:49 PM.

  • 3

#2 Creative Fusion

Creative Fusion

    GMC Member

  • New Member
  • 55 posts

Posted 21 February 2012 - 09:58 AM

It is extremely rare for me to comment, but all programmers that want to learn how to write professional code and everyone that wants a professional, easy-to-use, flexible, and FAST gui/hud/inventory/etc. system should support this project's development. I have been employed as a programmer (C++/CLI, C#, VisualBasic.NET, JavaScript, etc.) and know what companies look for and use, and I want to let people here know that they are using gui frameworks similar to what iam1me is providing here (if only gml were more object-oriented). For those that don't understand the current and massive potential benefits, I will try to help explain:

1. Makes Your Development Much Easier
Firstly, to give you all a clear visual of the potential, please follow this link: http://dev.sencha.co...mples/#sample-7 (see the Layout Managers section) One thing iam1me's project provides is an easy way to spatially organize your form controls (like from Game Widgets)/sprites/etc. How often have you struggled to place instances or draw sprites in a room at certain distances from each other (often equal), keeping them from overlapping, aligning them with each other, trying to fit them into certain areas so that things look nice, and so on? The first very basic use of this system makes it so you don't have to manually set the x/y coordinates of every instance. It does most of the work for you automatically. If you do things the typical "gm way" and manually place instances--either directly in gm's epic failure of a room editor or via code--remember you will more than likely later on decide you want to change the layout of instances later on. You will likely do this because you, for example, don't like your original layout, or because you want to add new things and need to move prior things around to nicely fit them all into the desired area. You may even want the layout to adapt to a different form factor. Meaning, say you are making a game you originally had in mind for a large pc screen but then want that game to automatically adapt to the size of an iphone (for when GM Studio is released). With iam1me's system, you won't have to worry about changing the coordinates of your instances/drawings to space them out properly to fit within certain areas of the screen, or worry about changing your code to draw a background to fit the bounds of that new layout, or worry about making many other changes to your code, because this system will do things for you automatically. Think of how flexible html tables are for example in terms of how they dynamically space things out as the contents of their cells change and you will begin to see the initial power of such a system as this.

2. Speeds up your Game/App Tremendously
All gm gui systems I have seen, except for this one and one other, execute several drawing and update functions every frame of the game regardless of whether such drawings or updates are actually needed. As far as I've seen, iam1me's system will only draw and update things as needed. Surfaces and his Advanced Event Handling system make this possible. In fact, I say gm should have similar event handling functions built in, since it is vital to the maximum performance and ease of development of many things people might make. The basic idea behind such an event system is that a "message" is sent directly from an instance to others interested in listening to it when something of importance happens to that first instance. This is much better than the typical "gm way" of running code every step in one instance that checks the variables in another instance in order to determine whether something should be done in the first instance. That's slow and other kinds of nasty I won't go into.... Most other so-called professional programming languages come equipped with this type of event dispatch functionality. In JavaScript or ActionScript (both flavors of ECMAScript) you would use methods (functions) such as addEventListener() to accomplish this.

There are other current and many foreseeable benefits to iam1me's gui and event handling systems, but I'll leave it at that so this doesn't get too long. To you, iam1me, I just want to say this is a really great and necessary thing you're doing. And props for having such clean, optimized code! I wish more gm coders would take time to indent and at least minimally comment their code and take optimizations into consideration. I just gave your code a quick glance though. I actually can't provide much criticism at the moment for serious lack of time, and because I personally probably won't use this. :) But that is ONLY because I've written my own system that is much like though much unlike what you've done here, including event dispatch systems and some Game Widgets integration. That's really the reason why I decided to comment (since I almost never comment on anything), because we've created similar things, but I have no plans to release my code, so I'm glad you're helping others with yours. The major way my work differs from yours is that it's more declarative than imperative in the way layouts are set up. I pretty much made a concise mark-up language in gm that generates highly stylized html tables and so forth in gm.

Anyway, I wish you much luck in this and hope people realize how useful it is and how useful it will be as it develops.
  • 2

#3 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 21 February 2012 - 03:54 PM

Thank you for such a great review! I had a feeling that it would be other programmers that would appreciate my work here :medieval:

Hopefully other GM members, who haven't already written their own GUI API :thumbsup:, will also come to see the power in this extension and will start to use it. Its always nice when people continue to use what you've put a lot of time into developing.

I decided to use part of your review in my footer - I hope you don't mind?

Edited by iam1me, 21 February 2012 - 04:01 PM.

  • 0

#4 Creative Fusion

Creative Fusion

    GMC Member

  • New Member
  • 55 posts

Posted 22 February 2012 - 02:22 AM

By all means! If and when you integrate this with Game Widgets, and especially if BBGaming includes something about it in his topic, I'm sure many will be eating this stuff up. If you continue, it would also be cool if you had time to make a little visual designer app to go with it. Awhile from now I might even be able to help if desired or work on something like that myself and provide an option to export code for your type of framework and maybe code for mine as well. Then we can sell it and get rich quick. lol. (Not really, unless people here were really willing to pay for such a thing, then I might actually do it....)
  • 0

#5 MasterOfKings

MasterOfKings

    The True Master

  • GMC Member
  • 4888 posts
  • Version:GM8

Posted 22 February 2012 - 10:18 AM

I didn't use the extension myself, but it's a very fine idea. :)

As for the constants, etc. It'll be a good idea to offer a .gmres file which includes the extension's scripts, constants, etc. In saying that, provide a link to each of the other resources, just in case someone has an issue with the .gmres file.
  • 1

#6 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 22 February 2012 - 01:41 PM

I didn't use the extension myself, but it's a very fine idea. :)

As for the constants, etc. It'll be a good idea to offer a .gmres file which includes the extension's scripts, constants, etc. In saying that, provide a link to each of the other resources, just in case someone has an issue with the .gmres file.


Thank you :) And I will definitely look into using a resource file! This is my first attempt at an extension, so I'm still familiarizing myself with the different extension files.
***********************

On a side note: the GUI API has received a small update. It fixed a couple bugs and also now includes a label GUI_Object which can be created by calling GA_label_create(text,font id); You can set its font, color, bgcolor, text, and autoresize properties by using functions like GA_label_set_font(label id, font id); For font, if you put -1, that defaults to 12pt Arial font.

Edited by iam1me, 22 February 2012 - 01:51 PM.

  • 0

#7 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 22 February 2012 - 01:57 PM

By all means! If and when you integrate this with Game Widgets, and especially if BBGaming includes something about it in his topic, I'm sure many will be eating this stuff up. If you continue, it would also be cool if you had time to make a little visual designer app to go with it. Awhile from now I might even be able to help if desired or work on something like that myself and provide an option to export code for your type of framework and maybe code for mine as well. Then we can sell it and get rich quick. lol. (Not really, unless people here were really willing to pay for such a thing, then I might actually do it....)


That'd be awesome if you wanted to help out with this project :) Creating/converting all those widgets is a lot of work! And it would indeed be nice if we had a visual designer app! Now that I'm comparing the code for game widgets, it maybe just be easier to make them from scratch - like I did the label. I hate having to use that D&D window... as you can probably tell from my code :P

And that'd be great if this became popular enough that we could sell copies haha. However, before that could happen people will have to start using it. I'm thinking of writing a couple tutorials that show how to do things like make a HUD using this API.

Edited by iam1me, 22 February 2012 - 09:59 PM.

  • 0

#8 ClintB

ClintB

    GMC Member

  • New Member
  • 6 posts

Posted 23 February 2012 - 03:05 AM

This looks pretty awesome. While I've been scripting and programming for years now, most of my experience in GUIs is based on WinForms and a *little* bit of WPF and My only graphical game programming experience is in GM. So please forgive me if the following statements & questions are relatively (completely?) ignorant...

I've struggled to build even a foundation for a flexible menuing system (think RPG), as well as the GUI drawing and layout portion. This GUI API seems a bit like the layout canvas & panels in WPF, so I'm thinking that learning how to use it properly may take care of layout issues. Hmm...I guess my question is: Where should I start to try building (or properly using something available for GML users) a menu system that supports drawing layered submenus & "arbitrary" script/event calls from menu actions etc.? :confused: I hate being so ignorant that I don't even know which questions to ask.

Thanks in advance for any help you can give.
  • 1

#9 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 23 February 2012 - 03:46 AM

This looks pretty awesome. While I've been scripting and programming for years now, most of my experience in GUIs is based on WinForms and a *little* bit of WPF and My only graphical game programming experience is in GM. So please forgive me if the following statements & questions are relatively (completely?) ignorant...

I've struggled to build even a foundation for a flexible menuing system (think RPG), as well as the GUI drawing and layout portion. This GUI API seems a bit like the layout canvas & panels in WPF, so I'm thinking that learning how to use it properly may take care of layout issues. Hmm...I guess my question is: Where should I start to try building (or properly using something available for GML users) a menu system that supports drawing layered submenus & "arbitrary" script/event calls from menu actions etc.? :confused: I hate being so ignorant that I don't even know which questions to ask.

Thanks in advance for any help you can give.


I haven't used WPF specifically, but most likely this setup and that run along the same lines. Layout Managers are a common tool for high level languages.

This API should definitely be able to help you with your layout issues: the layouts will dynamically respond to you adding/removing items from panels. Thus you don't have to worry about figuring out the x/y locations for your items as your menu changes.

Of course, there are many features that I have yet to put into this API which would be beneficial to you: namely menus. It is certaintly possible to make a menu system using this API, but "menus" as such aren't built into it yet.

As it stands now, I would start off by creating a main menu panel. For a traditional top of the application menu, create and apply a flowlayout & adjust the hgap property to your liking. Fill this with labels or GUI_Object instances that you've applied sprites to. Though I will make an update shortly that will take care of this: the panels do not currently resize themselves to fit their contents. However, if you would like I can put a rush on this?

For each of these menu items, create a script that responds to the mouse_release event. When that occurs, have another panel you created - with the sub menu items in it - become visible. For each of these sub menu items in turn, listen for their mouse_release event and do whatever you want in response. I hope this helps :)

This GUI API still has many more improvements along the way - and menus are one of them. I can't say how long till they are built-in. However, the more such interest I see the more I will make it a priority. If you do decide to use this API, let me know! I love getting feedback, and I'll be sure to prioritize fixing any bugs you come across.
  • 0

#10 ClintB

ClintB

    GMC Member

  • New Member
  • 6 posts

Posted 23 February 2012 - 04:57 AM

As it stands now, I would start off by creating a main menu panel. For a traditional top of the application menu, create and apply a flowlayout & adjust the hgap property to your liking. Fill this with labels or GUI_Object instances that you've applied sprites to. Though I will make an update shortly that will take care of this: the panels do not currently resize themselves to fit their contents. However, if you would like I can put a rush on this?

For each of these menu items, create a script that responds to the mouse_release event. When that occurs, have another panel you created - with the sub menu items in it - become visible. For each of these sub menu items in turn, listen for their mouse_release event and do whatever you want in response. I hope this helps :)


That makes sense, though I'm not really going for the traditional "Application" menu. More something like:
Posted Image

Applying what you said to the above, would each menu be a panel with a stack layout & the vertical gap between items set appropriately? I'm assuming that the panels can be drawn or placed on different layers to be drawn over each other in a layered manner, is that correct?

Thanks for the quick reply, I'll have to try out some tests and see what I can do with this.
  • 0

#11 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 23 February 2012 - 05:59 AM

Applying what you said to the above, would each menu be a panel with a stack layout & the vertical gap between items set appropriately?


Yes :thumbsup:

I'm assuming that the panels can be drawn or placed on different layers to be drawn over each other in a layered manner, is that correct?


All you have to do is, like any other GML object, set their relative depths so that the one you want on top has a lower depth.

Thanks for the quick reply, I'll have to try out some tests and see what I can do with this.


Let me know if you run into any problems or if there's any feature you would like to see implemented! :)
  • 0

#12 MasterOfKings

MasterOfKings

    The True Master

  • GMC Member
  • 4888 posts
  • Version:GM8

Posted 23 February 2012 - 06:06 AM

And it would indeed be nice if we had a visual designer app!

If you fancy it, I could write up a visual designer app for you; although, I'd need to work with you in understanding the extension's syntax and under-lying core.
  • 0

#13 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 23 February 2012 - 06:13 AM

And it would indeed be nice if we had a visual designer app!

If you fancy it, I could write up a visual designer app for you; although, I'd need to work with you in understanding the extension's syntax and under-lying core.


That would be amazing :biggrin: Feel free to ask me here or pm me any questions you have about the GUI APIs inner workings!

If me, you, and Creative Fusion all work on developing this, this could become an extremely powerful and popular extension for GM!
  • 0

#14 Creative Fusion

Creative Fusion

    GMC Member

  • New Member
  • 55 posts

Posted 23 February 2012 - 08:05 PM

That'd be awesome if you wanted to help out with this project :) Creating/converting all those widgets is a lot of work! And it would indeed be nice if we had a visual designer app! Now that I'm comparing the code for game widgets, it maybe just be easier to make them from scratch - like I did the label. I hate having to use that D&D window... as you can probably tell from my code :P

And that'd be great if this became popular enough that we could sell copies haha. However, before that could happen people will have to start using it. I'm thinking of writing a couple tutorials that show how to do things like make a HUD using this API.


I'd like to. For now though, maybe after things develop more, I'd only volunteer for the visual designer portion, since I can expedite that, having a long-developed code base already on-hand for that. But if MasterOfKings or anyone else works on that, that's great too. I have released many things for free in the past (not here), but at the moment I am $-focused (Probably not selling it, because I know gm users are cheapskates. lol. But maybe accepting donations.), so I'd like to see how things progress and the interest level. I'm thinking I might actually be able to integrate your system into my own work, using it for some of the non-"markup" parts in a way that doesn't really intermingle our codes. Then the total package will be like WPF in the way that you can use XML and/or C# to make your interfaces. If I do add support for your system into mine at some point, I'll probably send you the source code and you can post it in this topic if you want as a complement to your work.
  • 0

#15 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 23 February 2012 - 08:25 PM

I'd like to. For now though, maybe after things develop more, I'd only volunteer for the visual designer portion, since I can expedite that, having a long-developed code base already on-hand for that. But if MasterOfKings or anyone else works on that, that's great too. I have released many things for free in the past (not here), but at the moment I am $-focused (Probably not selling it, because I know gm users are cheapskates. lol. But maybe accepting donations.), so I'd like to see how things progress and the interest level. I'm thinking I might actually be able to integrate your system into my own work, using it for some of the non-"markup" parts in a way that doesn't really intermingle our codes. Then the total package will be like WPF in the way that you can use XML and/or C# to make your interfaces. If I do add support for your system into mine at some point, I'll probably send you the source code and you can post it in this topic if you want as a complement to your work.


Alright, well it sounds like Master of Kings might be interested in working on other aspects of the GUI - so I'll talk with him and see if he wouldn't mind letting you handle the visual designer portion while me and him continue developing the core + getting a website w/ documentation up.

And that would be pretty awesome if you did integrate the two systems together :) Yes, definitely let me know if you decide to do that!
  • 0

#16 grugin

grugin

    GMC Member

  • GMC Member
  • 127 posts

Posted 24 February 2012 - 04:46 PM

Congrats dude, your system rocks a lot !!! This is one of the best extension I've seen ! I think that GUI edition/creation was a great leak for gamemaker and I'm happy to see that a really good approach to this problem emerges now ! I can't wait to see more controls and updates (visual editor with your system and I think I can be in heaven).

Keep up the good work !
  • 1

#17 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 24 February 2012 - 07:14 PM

Congrats dude, your system rocks a lot !!! This is one of the best extension I've seen ! I think that GUI edition/creation was a great leak for gamemaker and I'm happy to see that a really good approach to this problem emerges now ! I can't wait to see more controls and updates (visual editor with your system and I think I can be in heaven).

Keep up the good work !


Thank you! And I will - right now I'm working on a personal website where I will be able to permanently store, among other things, this project. The OP is becoming a bit cluttered, so I'm planning on moving all of the documentation over to the website. Also, expect another update in a week or so.
  • 0

#18 grugin

grugin

    GMC Member

  • GMC Member
  • 127 posts

Posted 27 February 2012 - 10:19 AM

Glad to hear that ! Thank you !
  • 0

#19 wnsrn3436

wnsrn3436

    GMC Member

  • GMC Member
  • 149 posts
  • Version:GM:Studio

Posted 02 March 2012 - 05:48 AM

This seems to be pretty good.
I'll use it is soon. :thumbsup:
(Translation is a bit of a problem, but ...)

For one kind of uncomfortable point, "GUI_API_CONSTANTS.txt" is.

Posted Image
How about this approach?

Edited by wnsrn3436, 02 March 2012 - 05:48 AM.

  • 0

#20 grugin

grugin

    GMC Member

  • GMC Member
  • 127 posts

Posted 13 April 2012 - 07:48 AM

Any progress on this ???
  • 0

#21 wydo

wydo

    GMC Member

  • GMC Member
  • 50 posts

Posted 11 March 2013 - 11:18 AM

Are you still working on this iam1me?

I've just come across it and will be giving it a good lppk for my current project...
  • 0

#22 iam1me

iam1me

    GMC Member

  • GMC Member
  • 380 posts
  • Version:GM8

Posted 12 March 2013 - 01:54 AM

Are you still working on this iam1me?

I've just come across it and will be giving it a good lppk for my current project...


No, sorry. I'm far too busy now that I'm working full time + taking Masters courses. Plus after working 8hrs as a programmer, I don't want to come back and do more programming haha. However, feel free to use it and modify it to your needs.

I may continue this project in the summer though, when I won't have classes. Will have to wait and see.

Edited by iam1me, 12 March 2013 - 01:56 AM.

  • 0

#23 redspark

redspark

    GMC Member

  • GMC Member
  • 150 posts
  • Version:GM:Studio

Posted 28 June 2013 - 07:36 PM

It would be nice to see this continued.  It appears though that the host no longer exists.  Can it be uploaded again?  Thanks.


  • 0

#24 gamemakerfun300

gamemakerfun300

    GMC Member

  • GMC Member
  • 48 posts
  • Version:GM:Studio

Posted 04 July 2013 - 02:56 AM

EDIT: I just realized I actually had the file on my computer. If anyone wants it I reupoaded it here. http://www.mediafire..._API_Script.zip


Edited by gamemakerfun300, 06 July 2013 - 11:10 PM.

  • 1

#25 Sirosky

Sirosky

    GMC Member

  • GMC Member
  • 1495 posts
  • Version:GM:Studio

Posted 10 July 2013 - 11:59 PM

Scanned with AVG Internet Security 2012, ZIP appears to be clean. Thanks Gamemakerfun!  :thumbsup:


  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users