This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 »
346
Ideas and Design / Re: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.
« on: November 20, 2015, 01:02:19 pm »
It might be having trouble looking for the Scintilla assembly though, try using the MSI installer method or see if you can flag the Scintilla assembly to be copied to the target directory. I can't say unless I get the chance to try to build it myself if I find some time here maybe over the weekend.
347
Ideas and Design / Re: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.
« on: November 19, 2015, 06:46:29 pm »
I can't really say for certain unless you tell me whether you used the MSI installer method to build the exe or directly copied and pasted it from the /release /debug folder. If that is what you did you likely forgot to copy some of the DLL's, you can't do that because they are needed assemblies. Tell us exactly what you did to build it and copy it to the laptop.
348
General ENIGMA / Re: Splashscreens
« on: November 18, 2015, 10:18:05 pm »
No we're fine, and I'm not overwhelmed actually. I am taking it one piece at a time. I am making quick progress here but also correct progress because I am not rushing to do anything. The new LGM will be released when it is released. I just wanted to reassure you that everything is fine and that this topic is not delaying anything.
The old JoshEdit commits by me were cleaned up and now follow the style guide of the project.
https://github.com/JoshDreamland/JoshEdit/pull/49
https://github.com/JoshDreamland/JoshEdit/pull/48
And one bug has been fixed:
https://github.com/JoshDreamland/JoshEdit/pull/46
The old JoshEdit commits by me were cleaned up and now follow the style guide of the project.
https://github.com/JoshDreamland/JoshEdit/pull/49
https://github.com/JoshDreamland/JoshEdit/pull/48
And one bug has been fixed:
https://github.com/JoshDreamland/JoshEdit/pull/46
349
Works in Progress / Re: Croky
« on: November 17, 2015, 08:58:08 am »
I've filed a ticket on the transparency issue, it is an inconsistency that will be fixed in the next release. This is an easy fix for me to make in LGM and thus why I have decided to make the change. I agree with TheExDeus that it is more logical the way GM does it.
https://github.com/IsmAvatar/LateralGM/issues/230
Important to note that the issue does not occur with the "transparency pixel" option set, which was an option from before GM8.1
The transparency threshold option also appeared in GM8.1 and will be added along with the checkbox for "separate collision masks"
Also consider that this may not fix the issue ENIGMA side, because I believe ENIGMA recalculates the bounding box too. I will send a beta build of the new LGM when I've fixed it for TheExDeus to test to see if it will fix it ENIGMA side or not. He can then post back here and to the tracker and verify whether it will or not.
The other issue regarding instances disappearing in the room may have been reported before by fervi. It was reported with the EGM format and I was never able to reproduce it. I did not want to close the ticket because I would like to fix it, but can't until I know what is causing it. So additional details would be helpful, such as what format you were saving to, was it occurring while you were editing the room or only on load, etc. If this is only occurring with the EGM format then it is an ENIGMA plugin issue and must be fixed there. A similar but related issue is the saving of rooms as binary blobs in EGM, which TheExDeus has been discussing.
https://github.com/IsmAvatar/LateralGM/issues/79
https://github.com/IsmAvatar/LateralGM/issues/230
Important to note that the issue does not occur with the "transparency pixel" option set, which was an option from before GM8.1
The transparency threshold option also appeared in GM8.1 and will be added along with the checkbox for "separate collision masks"
Also consider that this may not fix the issue ENIGMA side, because I believe ENIGMA recalculates the bounding box too. I will send a beta build of the new LGM when I've fixed it for TheExDeus to test to see if it will fix it ENIGMA side or not. He can then post back here and to the tracker and verify whether it will or not.
The other issue regarding instances disappearing in the room may have been reported before by fervi. It was reported with the EGM format and I was never able to reproduce it. I did not want to close the ticket because I would like to fix it, but can't until I know what is causing it. So additional details would be helpful, such as what format you were saving to, was it occurring while you were editing the room or only on load, etc. If this is only occurring with the EGM format then it is an ENIGMA plugin issue and must be fixed there. A similar but related issue is the saving of rooms as binary blobs in EGM, which TheExDeus has been discussing.
https://github.com/IsmAvatar/LateralGM/issues/79
350
Issues Help Desk / Re: Extension .egm does not match EGM?
« on: November 16, 2015, 09:17:13 am »
Harri, the reason for the extension was because it is a subset of YAML, so it's easier to implement. At least that is what Josh told me.
I'm still in favor of XML for GMX and YAML for EGM, otherwise there will be practically no difference between the formats and no advantage of one over the other. Also you should be able to add additional properties to GMX without Studio complaining about the file. Studio will only complain if you remove properties or you change the structure of existing ones. But you can and should be able to add a whole new tag, LGM will be doing this as of the next release to keep the id's in there from a GMK file for backwards compatibility. I've tested this and it seems to load fine in Studio, but if you save the file back, Studio will not save the id tags and will remove them.
I'm still in favor of XML for GMX and YAML for EGM, otherwise there will be practically no difference between the formats and no advantage of one over the other. Also you should be able to add additional properties to GMX without Studio complaining about the file. Studio will only complain if you remove properties or you change the structure of existing ones. But you can and should be able to add a whole new tag, LGM will be doing this as of the next release to keep the id's in there from a GMK file for backwards compatibility. I've tested this and it seems to load fine in Studio, but if you save the file back, Studio will not save the id tags and will remove them.
351
Ideas and Design / Re: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.
« on: November 15, 2015, 09:44:06 am »
It's whatever you want to do. I'd post it in Third Party because people rarely post there and it's the best category since none of us are helping directly.
http://enigma-dev.org/forums/index.php?board=47.0
Not that I won't give you any code that you need.
Some things you should try to consider are the following:
1) Internationalization and localization. This is translating the GUI controls to other languages. NOW, you don't need to actually translate it to a language, which is localization or l10n people call it. You only need to worry about i18n or internationalization, this means just preparing the application to be translated. All this means is that anytime you create a GUI control with text, any user facing text, you put it in a resource file that can be translated.
It's not difficult at all, you don't need to worry about layouts or anything, Windows Forms will fix itself automatically just like Swing for right to left languages like Arabic. All you have to do is put all of the text fields in a properties file.
https://github.com/IsmAvatar/LateralGM/blob/master/org/lateralgm/messages/messages.properties
Just like LateralGM. You should also do this for keyboard shortcuts because keyboard layouts are different for almost all locale's. Again, you don't need to actually translate it to another language, just use properties files so that users can replace them if they want to bring it to their own language. This part is important because YoYoGames completely ignores anything other than UK English, so it's a good feature to have over them.
This is something made easy by both .NET, Swing, and JavaFX. Qt and GTK not so much, they use binary translations, so you have to inline the translated strings and then use a special tool to create a localized resource. For how to do it with Windows Forms, you use a satellite assembly (really easy):
http://blogs.msdn.com/b/global_developer/archive/2011/07/22/introduction-to-satellite-assemblies.aspx
2) Try to make the icons customizable so users can throw out the icons and replace them with other ones if they like. You don't need to include 50 icon packs, just do as LGM does and use 1 but make it external so users can replace the icons. You can get the LGM icon pack which is custom made by Josh on GitHub, see the releases page/tab.
https://github.com/enigma-dev/Calico-Icon
3) Try to focus at first on small isolated components. Lay the ground work for your project first. The first thing you could do for example is create a custom color picking control, you'll need one to select instance color and room background color and in a few other places. You can see the one that the new LGM has, it's a very simple control.
Another control you could prepare is the search text field, a generic control with a hint/watermark, because you may have some uses for it as well. Following Stack Overflow will give you some examples.
http://stackoverflow.com/questions/2487104/how-do-i-implement-a-textbox-that-displays-type-here
I am simply suggesting all of these because they may make your life easier in the long run. Once you get going with the ground work you should just be pulling all of the little pieces together. If you follow my advice your chances of failure will decrease.
http://enigma-dev.org/forums/index.php?board=47.0
Not that I won't give you any code that you need.
Some things you should try to consider are the following:
1) Internationalization and localization. This is translating the GUI controls to other languages. NOW, you don't need to actually translate it to a language, which is localization or l10n people call it. You only need to worry about i18n or internationalization, this means just preparing the application to be translated. All this means is that anytime you create a GUI control with text, any user facing text, you put it in a resource file that can be translated.
It's not difficult at all, you don't need to worry about layouts or anything, Windows Forms will fix itself automatically just like Swing for right to left languages like Arabic. All you have to do is put all of the text fields in a properties file.
https://github.com/IsmAvatar/LateralGM/blob/master/org/lateralgm/messages/messages.properties
Just like LateralGM. You should also do this for keyboard shortcuts because keyboard layouts are different for almost all locale's. Again, you don't need to actually translate it to another language, just use properties files so that users can replace them if they want to bring it to their own language. This part is important because YoYoGames completely ignores anything other than UK English, so it's a good feature to have over them.
This is something made easy by both .NET, Swing, and JavaFX. Qt and GTK not so much, they use binary translations, so you have to inline the translated strings and then use a special tool to create a localized resource. For how to do it with Windows Forms, you use a satellite assembly (really easy):
http://blogs.msdn.com/b/global_developer/archive/2011/07/22/introduction-to-satellite-assemblies.aspx
2) Try to make the icons customizable so users can throw out the icons and replace them with other ones if they like. You don't need to include 50 icon packs, just do as LGM does and use 1 but make it external so users can replace the icons. You can get the LGM icon pack which is custom made by Josh on GitHub, see the releases page/tab.
https://github.com/enigma-dev/Calico-Icon
3) Try to focus at first on small isolated components. Lay the ground work for your project first. The first thing you could do for example is create a custom color picking control, you'll need one to select instance color and room background color and in a few other places. You can see the one that the new LGM has, it's a very simple control.
Another control you could prepare is the search text field, a generic control with a hint/watermark, because you may have some uses for it as well. Following Stack Overflow will give you some examples.
http://stackoverflow.com/questions/2487104/how-do-i-implement-a-textbox-that-displays-type-here
I am simply suggesting all of these because they may make your life easier in the long run. Once you get going with the ground work you should just be pulling all of the little pieces together. If you follow my advice your chances of failure will decrease.
352
Ideas and Design / Re: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.
« on: November 14, 2015, 09:13:39 pm »
See I already knew when I started reading this that Lazarus was used for the Mac port. I did not, however, know it was used in an attempted Linux port.
The only thing to note HitCoder is that Lazarus may not be as documented as Windows Forms, GTK#, or Qt Framework. So using that you might not be able to find answers to your problems as easily.
The only thing to note HitCoder is that Lazarus may not be as documented as Windows Forms, GTK#, or Qt Framework. So using that you might not be able to find answers to your problems as easily.
353
General ENIGMA / Re: Splashscreens
« on: November 14, 2015, 08:43:07 pm »
Sorry meant angular as in, criss-crossing, that's what is meant there. Hence how my responses to that are the perfectly horizontal ones. There are rounded corners there on that one too.
Anyway, the red isn't important at all, nobodies complaining about the red. Everyone's going to have different opinions, so I'll likely just pick one or the most liked one, I'm just wanting to see what else anybody has.
@TKG, chill, I have about 50 fixes here waiting to push to master. This is going well, we're getting some nice results. There is nothing revolutionary but I can already start making a list.
* Search field now respects anti-aliasing settings.
* Search field now has proper clipping and will not draw over other controls when the text overflows.
* External editors now properly close their file handles after reading the file back in. So you can save multiple times with an image editor without having to restart the image editor, for example.
* GMX instance and tile names are now loaded and can be changed in the room editor.
* New color picking control that can copy and paste hexadecimal color values.
* Fixed room editor default size, will no longer erroneously complain of unsaved changes.
* Fixed exception caused with sprites and images smaller than 5 pixels which was caused by the transparency pattern painting.
* Formatting of the code and removed whitespace. Spaces have now been converted to tabs so that code that is side by side will be more consistent. Missing new lines on files were fixed/added. This was not done everywhere, just where any regular expressions I checked found issues. These also apply to JoshEdit, but the changes are not finished being merged.
* Fixed the preferences frame layout, it no longer looks like a kindergartner designed it (this is a jab at myself who was the one that failed to do nice layouts). A few browse buttons have also been added.
* Added command links to the help menu for Website, Community, and Submit Issue which can all be configured from preferences.
* Added drag and drop import to resource menus. This means places where it asks for a sprite or the parent on the object frame, you can click and drag the resource directly from the project tree and drop it on the resource menu as opposed to navigating the context/popup menu.
* Room editor now has the transparency background pattern which is also configured via preferences.
* Adds support for Web look and feel.
* Quantum look and feel has been removed, it can be recreated in a custom Java look and feel or simply as a plugin to LateralGM.
* Removal of uneeded files from the built jar. These include things like the logo svg and splash svg's, old and new ones, that were not needed. They aren't needed because we only need the current one we are using as a PNG for the final jar. Removal of these files has so far led to a 0.1MB reduction in the file size of the jar. It currently is sitting at 1,938kb.
* Addition of right orientation mode that can be disabled from preferences. This may make it easier for some individuals to work with the program, especially with the room editor where the toolbar buttons will be directly above the canvas instead of obstructed by the tab panel.
* Several fixes in the sound frame models that were causing issues with saving projects (surprisingly noone ever reported it).
* Cut, copy, paste, undo, and redo are now consistent across all editors and menus. Some of them used to be different for certain editors, they are now consistently the same for every editor and every context menu in the entire program appearing in the order Cut, copy, paste, separator, undo, redo. This was simply a lapse in thought over the course of development, fixing it promotes consistency and user friendliness.
* Some look and feels, such as the default Swing look and feel, may begin overlapping the taskbar again. The previous fix I applied does not work with multiple monitors. So multi monitor support is now fixed but I do not have a fix for the look and feels that want to overlap the taskbar. This only occurs with non native window decorations anyway, and only for specific look and feels. Most of the good ones, including Web look and feel and Synthetica, do not have this issue. So it's really just a bug in the Swing/Metal look and feel.
* Baseline alignment is now used correctly in a lot of layouts, I didn't know what it was before so I opted for center aligned. This was not correct and where I did this there were minor visual issues I noticed with the layouts.
There's many more as well that I can't think of right now and a few more coming before I make the release. As I said, nothing here is revolutionary, this next release is about cleaning up the existing code base and making the program more stable.
Edit: Josh likes the latest one with just blue and white, "looks good"
Anyway, the red isn't important at all, nobodies complaining about the red. Everyone's going to have different opinions, so I'll likely just pick one or the most liked one, I'm just wanting to see what else anybody has.
@TKG, chill, I have about 50 fixes here waiting to push to master. This is going well, we're getting some nice results. There is nothing revolutionary but I can already start making a list.
* Search field now respects anti-aliasing settings.
* Search field now has proper clipping and will not draw over other controls when the text overflows.
* External editors now properly close their file handles after reading the file back in. So you can save multiple times with an image editor without having to restart the image editor, for example.
* GMX instance and tile names are now loaded and can be changed in the room editor.
* New color picking control that can copy and paste hexadecimal color values.
* Fixed room editor default size, will no longer erroneously complain of unsaved changes.
* Fixed exception caused with sprites and images smaller than 5 pixels which was caused by the transparency pattern painting.
* Formatting of the code and removed whitespace. Spaces have now been converted to tabs so that code that is side by side will be more consistent. Missing new lines on files were fixed/added. This was not done everywhere, just where any regular expressions I checked found issues. These also apply to JoshEdit, but the changes are not finished being merged.
* Fixed the preferences frame layout, it no longer looks like a kindergartner designed it (this is a jab at myself who was the one that failed to do nice layouts). A few browse buttons have also been added.
* Added command links to the help menu for Website, Community, and Submit Issue which can all be configured from preferences.
* Added drag and drop import to resource menus. This means places where it asks for a sprite or the parent on the object frame, you can click and drag the resource directly from the project tree and drop it on the resource menu as opposed to navigating the context/popup menu.
* Room editor now has the transparency background pattern which is also configured via preferences.
* Adds support for Web look and feel.
* Quantum look and feel has been removed, it can be recreated in a custom Java look and feel or simply as a plugin to LateralGM.
* Removal of uneeded files from the built jar. These include things like the logo svg and splash svg's, old and new ones, that were not needed. They aren't needed because we only need the current one we are using as a PNG for the final jar. Removal of these files has so far led to a 0.1MB reduction in the file size of the jar. It currently is sitting at 1,938kb.
* Addition of right orientation mode that can be disabled from preferences. This may make it easier for some individuals to work with the program, especially with the room editor where the toolbar buttons will be directly above the canvas instead of obstructed by the tab panel.
* Several fixes in the sound frame models that were causing issues with saving projects (surprisingly noone ever reported it).
* Cut, copy, paste, undo, and redo are now consistent across all editors and menus. Some of them used to be different for certain editors, they are now consistently the same for every editor and every context menu in the entire program appearing in the order Cut, copy, paste, separator, undo, redo. This was simply a lapse in thought over the course of development, fixing it promotes consistency and user friendliness.
* Some look and feels, such as the default Swing look and feel, may begin overlapping the taskbar again. The previous fix I applied does not work with multiple monitors. So multi monitor support is now fixed but I do not have a fix for the look and feels that want to overlap the taskbar. This only occurs with non native window decorations anyway, and only for specific look and feels. Most of the good ones, including Web look and feel and Synthetica, do not have this issue. So it's really just a bug in the Swing/Metal look and feel.
* Baseline alignment is now used correctly in a lot of layouts, I didn't know what it was before so I opted for center aligned. This was not correct and where I did this there were minor visual issues I noticed with the layouts.
There's many more as well that I can't think of right now and a few more coming before I make the release. As I said, nothing here is revolutionary, this next release is about cleaning up the existing code base and making the program more stable.
Edit: Josh likes the latest one with just blue and white, "looks good"
354
General ENIGMA / Re: Splashscreens
« on: November 14, 2015, 01:32:26 pm »Quote from: TheExDeus
I don't really care about the gamepad icon. I personally haven't made a game in ENIGMA in the past 3 years. But I have made tens of software applications.Right I keep forgetting you saying that. But you are also making the wrong argument, because LateralGM will never be anything more than a GameMaker IDE, while ENIGMA may not be strictly game design, LGM basically is because it's strictly limited to being a GM IDE. This is for good reasons too, by focusing on a specific goal it can get more done. That does not mean I would not encourage derivatives of LGM that were not strictly GM, though I might just because it's built on Swing, in fact, I might just discourage all derivatives of LGM's Swing codebase.
So basically that argument doesn't apply as much to LGM's splash screen. On the other hand I still think we could add something that makes it both businessy and fun; I can't think of anything. Your idea about the keys would work if it was actually layed out like directional keys or a directional pad, but it's not, the bottom is off center.
And yes rcobra, I do like that one too, that's a possibility. I'll see what the others say.
Edit:
Rusky says he'd like to see more rectangular and less rounded corners, I do not agree with him on this. Maybe if it was 3D. He does however suggest a good idea, a remix on the GameCube logo. I don't think we should keep deepthroating Nintendo however.
355
General ENIGMA / Re: Splashscreens
« on: November 13, 2015, 04:56:01 pm »
Yeah Josh and Rusky like that variation too. But then Rusky said it's too angular, so I made more attempts. And Josh says that one is too big, but recognizes it looks like trash if it's too small.
Honestly, my favorite was:
It's clean and it's simple. DaSpirit liked this one too, it's just about perfect. It has everything it needs, it's sleek and modern looking, and just that little touch of the silhouette helps you realize it's a game engine. So this one might just be the one I choose, I am still open minded though.
Also I redid that other one again with additional shadowing:
This version makes me like it more and it comes closer to a tie.
From rcobra's I also got this other idea of doing it like a crossword puzzle but can't think of how to make it look nice:
If somebody wants to attempt that. And while I am at it, I realized what Dreamland's material design was missing, tilt shift depth of field. It's used in all of the Google+ stock photos.
Honestly, my favorite was:
It's clean and it's simple. DaSpirit liked this one too, it's just about perfect. It has everything it needs, it's sleek and modern looking, and just that little touch of the silhouette helps you realize it's a game engine. So this one might just be the one I choose, I am still open minded though.
Also I redid that other one again with additional shadowing:
This version makes me like it more and it comes closer to a tie.
From rcobra's I also got this other idea of doing it like a crossword puzzle but can't think of how to make it look nice:
If somebody wants to attempt that. And while I am at it, I realized what Dreamland's material design was missing, tilt shift depth of field. It's used in all of the Google+ stock photos.
356
General ENIGMA / Re: Splashscreens
« on: November 13, 2015, 11:47:48 am »
The only thing I can think of with Garo's is Space Invaders:
357
Works in Progress / Re: Croky
« on: November 13, 2015, 11:45:49 am »
It took me 3 - 5 attempts to make it all the way to the end. Sometimes the snails walk backwards haha. A controller configuration file would be nice, I like to use space bar to jump. I love the graphics and I think this is a really excellent start.
I was reading this article a while back, you may be interested in it as well:
http://www.1up.com/features/learning-level-design-mario
Edit: Also this interview is interesting as well. I know some people may disagree, but understanding the design that went into World 1-1 and levels for the early Mario games really makes me appreciate video games more as a form of art.
https://www.youtube.com/watch?v=zRGRJRUWafY
I was reading this article a while back, you may be interested in it as well:
http://www.1up.com/features/learning-level-design-mario
Edit: Also this interview is interesting as well. I know some people may disagree, but understanding the design that went into World 1-1 and levels for the early Mario games really makes me appreciate video games more as a form of art.
https://www.youtube.com/watch?v=zRGRJRUWafY
358
Off-Topic / Re: Defold Engine tryouts and thoughts
« on: November 11, 2015, 09:22:40 pm »
It's alright we understand popcade. I am actually really glad you posted this as I was not aware. It looks like they're using the Eclipse framework for the IDE. Will keep any eye on it.
359
Ideas and Design / Re: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.
« on: November 10, 2015, 08:02:49 pm »
It's fine I'd understand. I realize this is a lot of information, but I'll give it a go.
Regarding the editor's, as far as I remember only the one's shown in this screenshot should be layed out properly, the others may not be completed or do anything.
I am really interested in working on this IDE again and adding the actual logic. But there's some things I have to straighten out first. With this new LGM release I am also writing the GMX API in C++, which is a reusable library for loading GMX projects. This is needed in NaturalGM, and C# can call native code, so I'd just use it instead of rewriting it again in C#.
The basics start with the language. In C++ you can namespace things. And you can nest namespaces in other namespaces. The namespaces are resolved with the :: operator, such as std::string.
In Java, there are no namespaces, only packages. Packages follow the naming convention of a web domain name, except reversed. So if ENIGMA was creating a package, we would use the package name of org.enigma-dev.somejavapackage. When you do not own a domain name you can use things like your GitHub URL where the project is hosted. Each Java file in a package has only a single outer class. You can not have two outer classes in Java that are side by side. You can nest another class inside the outer class, called an inner class, but it can not be side by side. So it is 1 main/outer class for each *.java source file. You can't even put a single enum next to the outer class, must be inside it. These packages correspond to physical folders on the file system, as opposed to C++'s and C#'s being just in the actual source files.
This limitation does not exist in C# because it follows the C++ conventions of namespaces. You can put multiple classes at the outer level side by side. So I genuinely believe that C# is a superior language for many other reasons in addition to this, including the way it handles templates and generics.
So all that exists there are the designer files. The designer file is just where the WYSIWYG tool to place controls puts its code for creating them. You can write that code yourself in your own classes, which is what is done in LateralGM. Other frameworks like Qt use their own designer files which are compiled to C++, in JavaFX or WPF you use XML files. WPF does the styling in the XML, but JavaFX and Qt use separate CSS files to style the controls.
Anyway, there is nothing wrong with using a designer. A lot of people often say that this isn't good because you can create more flexible layouts through code, which is true. But there's nothing wrong with using a designer to lay out the basics of a form. And with WPF and JavaFX, using XML layout files is the way to code because it separates the layout from the logic of the program. Just like how HTML separates the structure of the DOM with CSS for styling and JavaScript for logic. Things are more reusable and modular this way.
MainWindow.Designer.cs
So we have the designer file generated by Visual Studio:
https://github.com/enigma-dev/SharpGM/blob/6719388fb7cabcdffefe69e4f5f8e38deae756de/SharpGM/MainWindow.Designer.cs#L26
Contrary to what it says, you can actually edit it from code as long as you write the exact same code as the editor would. Also, people often complain about this way of doing layouts because XML is more flexible, you can keep it outside the executable and let end users change the layout, so people often argue that WPF is the way to go. But when people write native Win32 apps using C++ and plain old Windows API, they do it in resource files, which I'll get to.
MainWindow.cs
Then you have the regular source file, which is where you should add the actual logic. This includes events for the controls and everything.
https://github.com/enigma-dev/SharpGM/blob/6719388fb7cabcdffefe69e4f5f8e38deae756de/SharpGM/MainWindow.cs
MainWindow.resx
Finally we have the resx file for the form.
https://github.com/enigma-dev/SharpGM/blob/6719388fb7cabcdffefe69e4f5f8e38deae756de/SharpGM/MainWindow.resx
This file is XML and the comments give you a good explanation of what it is for. It is essentially an extension of the rc resources file for WinAPI. When you write native Win32 applications like I just mentioned, using C++ and the plain old WinAPI without .NET or anything, you use rc resource files. ENIGMA uses these for some of the basic message dialogs, such as get_login or show_info.
https://github.com/enigma-dev/enigma-dev/blob/715e96c3b17af346d68e37a8c1708cc13cb369f5/ENIGMAsystem/SHELL/Widget_Systems/Win32/getstring.rc#L14
Notice it looks like a layout? LTEXT is just a label. It tells you its position, dimensions, and text value just like a layout file would. Anywhere you see #include <windows.h> that means the Windows API is being used. These files go through what's called the resource compiler (MinGW, the Windows port of GCC, has an open source version that ENIGMA uses) turns these into a binary which the Windows API can read.
All of this gets wrapped up for you with .NET, including the native controls. Everything in Windows Forms and .NET is just C# bindings (called a language binding because one language is wrapping another languages code, C# wrapping C++ ie) around all of this that takes care of the work for you. resx is an extension of these native Windows API resource files that is formatted as XML.
Regarding the editor's, as far as I remember only the one's shown in this screenshot should be layed out properly, the others may not be completed or do anything.
I am really interested in working on this IDE again and adding the actual logic. But there's some things I have to straighten out first. With this new LGM release I am also writing the GMX API in C++, which is a reusable library for loading GMX projects. This is needed in NaturalGM, and C# can call native code, so I'd just use it instead of rewriting it again in C#.
The basics start with the language. In C++ you can namespace things. And you can nest namespaces in other namespaces. The namespaces are resolved with the :: operator, such as std::string.
In Java, there are no namespaces, only packages. Packages follow the naming convention of a web domain name, except reversed. So if ENIGMA was creating a package, we would use the package name of org.enigma-dev.somejavapackage. When you do not own a domain name you can use things like your GitHub URL where the project is hosted. Each Java file in a package has only a single outer class. You can not have two outer classes in Java that are side by side. You can nest another class inside the outer class, called an inner class, but it can not be side by side. So it is 1 main/outer class for each *.java source file. You can't even put a single enum next to the outer class, must be inside it. These packages correspond to physical folders on the file system, as opposed to C++'s and C#'s being just in the actual source files.
This limitation does not exist in C# because it follows the C++ conventions of namespaces. You can put multiple classes at the outer level side by side. So I genuinely believe that C# is a superior language for many other reasons in addition to this, including the way it handles templates and generics.
So all that exists there are the designer files. The designer file is just where the WYSIWYG tool to place controls puts its code for creating them. You can write that code yourself in your own classes, which is what is done in LateralGM. Other frameworks like Qt use their own designer files which are compiled to C++, in JavaFX or WPF you use XML files. WPF does the styling in the XML, but JavaFX and Qt use separate CSS files to style the controls.
Anyway, there is nothing wrong with using a designer. A lot of people often say that this isn't good because you can create more flexible layouts through code, which is true. But there's nothing wrong with using a designer to lay out the basics of a form. And with WPF and JavaFX, using XML layout files is the way to code because it separates the layout from the logic of the program. Just like how HTML separates the structure of the DOM with CSS for styling and JavaScript for logic. Things are more reusable and modular this way.
MainWindow.Designer.cs
So we have the designer file generated by Visual Studio:
https://github.com/enigma-dev/SharpGM/blob/6719388fb7cabcdffefe69e4f5f8e38deae756de/SharpGM/MainWindow.Designer.cs#L26
Contrary to what it says, you can actually edit it from code as long as you write the exact same code as the editor would. Also, people often complain about this way of doing layouts because XML is more flexible, you can keep it outside the executable and let end users change the layout, so people often argue that WPF is the way to go. But when people write native Win32 apps using C++ and plain old Windows API, they do it in resource files, which I'll get to.
MainWindow.cs
Then you have the regular source file, which is where you should add the actual logic. This includes events for the controls and everything.
https://github.com/enigma-dev/SharpGM/blob/6719388fb7cabcdffefe69e4f5f8e38deae756de/SharpGM/MainWindow.cs
MainWindow.resx
Finally we have the resx file for the form.
https://github.com/enigma-dev/SharpGM/blob/6719388fb7cabcdffefe69e4f5f8e38deae756de/SharpGM/MainWindow.resx
This file is XML and the comments give you a good explanation of what it is for. It is essentially an extension of the rc resources file for WinAPI. When you write native Win32 applications like I just mentioned, using C++ and the plain old WinAPI without .NET or anything, you use rc resource files. ENIGMA uses these for some of the basic message dialogs, such as get_login or show_info.
https://github.com/enigma-dev/enigma-dev/blob/715e96c3b17af346d68e37a8c1708cc13cb369f5/ENIGMAsystem/SHELL/Widget_Systems/Win32/getstring.rc#L14
Notice it looks like a layout? LTEXT is just a label. It tells you its position, dimensions, and text value just like a layout file would. Anywhere you see #include <windows.h> that means the Windows API is being used. These files go through what's called the resource compiler (MinGW, the Windows port of GCC, has an open source version that ENIGMA uses) turns these into a binary which the Windows API can read.
All of this gets wrapped up for you with .NET, including the native controls. Everything in Windows Forms and .NET is just C# bindings (called a language binding because one language is wrapping another languages code, C# wrapping C++ ie) around all of this that takes care of the work for you. resx is an extension of these native Windows API resource files that is formatted as XML.
360
Ideas and Design / Re: LateralGM seems a little clunky overall, Ideas but not sure how to develop them.
« on: November 10, 2015, 03:20:48 pm »
Yeah, just download from GitHub man, it looks like I left all the Visual Studio solution files in there.
https://github.com/enigma-dev/SharpGM
So you should just have to open it up, I used 2013 too iirc. You might have to download and install the dll for Scintilla's Windows Forms wrapper. I used Scintilla for the code editor/syntax highlighting. Or it may be commented out because I opened it in Mono and didn't set up Scintilla, don't know if I pushed that to GitHub. Just Google how to get Scintilla for C#/Windows Forms or use NuGet.
https://github.com/enigma-dev/SharpGM
So you should just have to open it up, I used 2013 too iirc. You might have to download and install the dll for Scintilla's Windows Forms wrapper. I used Scintilla for the code editor/syntax highlighting. Or it may be commented out because I opened it in Mono and didn't set up Scintilla, don't know if I pushed that to GitHub. Just Google how to get Scintilla for C#/Windows Forms or use NuGet.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 »