sub(DB,40,42,30,10
Text(46,44,"ABOUT
If getKey(54)
[80C0E0F0F8F0B818->O
If X>40 and (X<70 and (Y>42 and (Y<52
sub(DD,"ABOUT","PROGRAM MADE","BY DAVID","GOMES"
Repeat getKey
End
End
...
End
sub(DF,"TITLE",1,0
Looks pretty good! :D
Looks like DCS7 cursor thingy XD
sub(DB,30,30,30,10
Text(34,32,"BUTTON
sub(DB,40,42,30,10
Text(46,44,"ABOUT
sub(DF,1,"TITLE
Wow great job scout!
sub(DF,1,"TITLE
sub(DF,0,"NO CLOSE BUTTON
sub(DB,30,30,30,10
Text(34,32,"BUTTON
sub(DD,"ABOUT","PROGRAM MADE","BY DAVID","GOMES"
Repeat getKey
End
PROGRAM MADE
BY DAVID
GOMES
Looks pretty good! :D
Looks like DCS7 cursor thingy XD
Looks nice, but you could optimize the location detection routine if you are willing to accept aligned buttons,
sub(SB,X,"TEXT"
Looks nice, but you could optimize the location detection routine if you are willing to accept aligned buttons,
What do you mean with that?
I used a system that qwerty would like, but also added:
-pic support
-scroll bars (working)
-input boxes
-scripting language
Idea!
Would it be possible to change the cursor to [20505ED5C195423C] (finger pointer) when you hover over a button?
This looks very nice. Excellent job, Scout (and Ashbad)! ;D
Why not just use the DCS GUI API via an Axiom instead of reinventing the wheel?
but unfortunately not everybody uses Doors CS.Sure, but DCS is the best Shell, and I think so much people use it...
but unfortunately not everybody uses Doors CS.Sure, but DCS is the best Shell, and I think so much people use it...
In the future it will expand... :)
Nice, that might be useful to some people to quickly generate menus.
Personally I would probably use DCS guis, but your version has the ability to run without dependencies.
Is it normal that the generator program takes about 20 seconds to startup, though? ???
Personally I would probably use DCS guis, but your version has the ability to run without dependencies.
Personally I would probably use DCS guis, but your version has the ability to run without dependencies.DCS is nice, but a lot of times classmates either don't have DCS, can't install DCS (not enough space or not compatible), or don't want it. Typically, MirageOS is what I see a lot, and consequently my compiles will be for MirageOS and nostub.
O.O 20 seconds?.NET does take a while to load, especially on slower computers. After it loads though, any other .NET application (or the same one) will load almost instantaneously, max 5 seconds.
It takes about 10 seconds to me. It's quite weird taking so long though.
Albert, Ashbad and I are working on those (at an unfortunately low rithm though).Oh, before I forget, could you add and commit the Axe native GUI program in so I can convert? :)
True, it is kinda sad that you have to have a 3 or so page app to run a GUI in basic, if you or your end-user doesn't use all of DCS....and include the fact that you need it to run ASM programs that use DCS libraries.
Albert, Ashbad and I are working on those (at an unfortunately low rithm though).Oh, before I forget, could you add and commit the Axe native GUI program in so I can convert? :)
THe thing is that I got a i7 quad core computer though O.OO.O 20 seconds?.NET does take a while to load, especially on slower computers. After it loads though, any other .NET application (or the same one) will load almost instantaneously, max 5 seconds.
It takes about 10 seconds to me. It's quite weird taking so long though.
This thing is pretty awesome O.O I think it'll really help some people make utils in Axe.
I think we should continue to work on this. DrawfWM is a shell, not a GUI library, although like DCS, it will expose the GUI library as well. This project's goal is to make an independent GUI library, in which I think we could do nicely. :) At the same time, either we or SirCmpwn can make Axe wrappers for it.
However, my main focus at the moment is wxWabbitemu, since there's quite a demand for such an app, and my C++ skills are growing as well, enabling me to contribute more.
This thing is pretty awesome O.O I think it'll really help some people make utils in Axe.
Thanks, but it is finished. Neither Ashbad nor me nor albert are working on this anymore.
Can't believe I didn't post here before...Oh, no problem! :) PM me your email. We have a google code site up for code hosting, but don't try to use any of the files yet... the tokenizer is broken! :P Once I get some time, I will pull down the old tokenizer and use Michael_Lee's tokenizer for the project.
I really think you guys should keep working on this. I'm playing around with an idea right now, and this would work perfectly with it. I'd also be interested in collaborating on this, if that's ok with you guys.
Can't believe I didn't post here before...Oh, no problem! :) PM me your email. We have a google code site up for code hosting, but don't try to use any of the files yet... the tokenizer is broken! :P Once I get some time, I will pull down the old tokenizer and use Michael_Lee's tokenizer for the project.
I really think you guys should keep working on this. I'm playing around with an idea right now, and this would work perfectly with it. I'd also be interested in collaborating on this, if that's ok with you guys.
Just curious - what are you planning to do? :)
What about waiting until Wabbitemu can have files extracted? Oh wait, that's Windows only, yeah use Michael Lee's. I would rather compile with Axe and sending file to computerI'm starting to wonder if you still can recall what you wrote... :P
10->X
10->Y
sub(SCR, Y-Offset, Height of scroll-box)
I was able to add a simple scroll bar today.
It's simply:Code: [Select]sub(SCR, Y-Offset, Height of scroll-box)
Here's a screenie using it.
sub(DB,30,30,30,10)
the code for drawing a button issub(DB,30,30,30,10,"5Hello")
All you do is simply add a 5th argument as a string of 1-9 characters, with the length prepended to it. So, since there are 5 characters in "Hello", it would become "5Hello".sub(ADB,30,30,30,10,"5Hello")
sub(ADB,12,50,30,10,"8Omnimaga")
This creates the button object in the stack.sub(RND)
LBL DLB
...
DRAW LOADING BAR
r1 is X
r2 is Y
r3 is widht
r4 is height
r5 is percentange
...
What about one command to set it up (4 args), and another command to update it (1 arg)?That's actually not a bad idea, and would probably be better for the GUI stack.
Lbl ALB
...
ADD LOADING BAR TO STACK
r1 is X
r2 is Y
r3 is widht
r4 is height
...
to create a Loading Bar object in the stack, thenLbl ULB
...
UPDATE LOADING BAR X
r1 is loading bar # in stack (1st loading bar is 1, 2nd is 2, and so on, regardless of other items in stack)
r2 is percentange
...
0->Z
While Z!=1
getKey->Z
If Z=1
Y+1->Y
End
If Z=2
X-1->X
End
If Z=3
X+1->X
End
If Z=4
Y-1->Y
End
sub(MOUSE, X, Y)
If Z=[2nd key]
sub(CLICK, X, Y)
End
End
... something like that. :P The program code should be independent from the GUI library, hence why it needs some reworking. Additional features, like instant GUI loading, can be done with a rewrite.)Is this project still active or is it dead? (It looks sooooo cool! )It's active... but undergoing a very serious rewrite to allow unlimited possibilities. :D
Has this taken advantage of callbacks yet, given that Axe now has variable function calls? All modern GUI designs these days are callback-based because it makes the programming simple and minimal.Indeed we are. ;) However, with this:
Dilog("Are you sure?",LMYes,LMNo)That would be an example of over-doing it! ;)
This would create a dialog with the text "Are you sure?" and when the "Yes" button is clicked, calls the label MYes and when "No" or cancel is clicked, calls the label MNo. This is just an example implementation, but I wonder if its similar?To fully answer this post... I know for a fact that wxWidgets does not do it this way, but it's C++, an OOP language, which Axe does not feature.... yet. ;)
gint result = gtk_dialog_run (GTK_DIALOG (dialog));
switch (result)
{
case GTK_RESPONSE_ACCEPT:
do_application_specific_something ();
break;
default:
do_nothing_since_dialog_was_cancelled ();
break;
}
gtk_widget_destroy (dialog);
We don't use callbacks in this case; instead, we take a result integer and compare it to another, preferably through predefined variables (in this case, GTK_RESPONSE_ACCEPT). dialog = gtk.MessageDialog(self, 0, gtk.MESSAGE_QUESTION,
gtk.BUTTONS_YES_NO, "Are you sure you want to exit?")
dialog.format_secondary_text(
"We don't want you to lose any data.")
response = dialog.run()
dialog.destroy()
if response == gtk.RESPONSE_YES:
gtk.main_quit()
elif response == gtk.RESPONSE_NO:
print "Not exiting."
**********************************
* Hello world! [X] *
**********************************
* +--------+ *
* | Button | *
* +--------+ *
**********************************
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Hello world!")
self.set_size_request(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
self.connect("destroy", gtk.main_quit)
self.fixed = gtk.Fixed()
self.add(self.fixed)
button = gtk.Button("Button")
button.set_size_request(80, 35)
button.connect("clicked", self.on_clicked) # There's the callback! :)
self.fixed.put(button, 50, 50)
self.set_tooltip_text("Window widget")
button.set_tooltip_text("Button widget")
self.show_all()
def on_clicked(self, widget): # This handle the event
dialog = gtk.MessageDialog(self, 0, gtk.MESSAGE_QUESTION,
gtk.BUTTONS_YES_NO, "Are you sure you want to exit?")
dialog.format_secondary_text(
"We don't want you to lose any data.")
response = dialog.run()
dialog.destroy()
if response == gtk.RESPONSE_YES:
gtk.main_quit()
elif response == gtk.RESPONSE_NO:
print "Not exiting."
PyApp()
gtk.main()
AddButton(A,1,2)
While Z!=15
getKey->Z
If Z=1
Y+1->Y
End
. etc...
If Z=19 .or whatever ENTER is
DlgBox("Hello world!")
End
uh...you lost me.Heh, I'm probably a bad explainer then :P