|
Post by alexfish on Jul 19, 2012 8:58:31 GMT 1
Demo Progress:
Frame work now more or less complete.
1. implemented rad plug-in by mobeus 2. no menu added, but available to use from the source file 3. all hug widgets now resizing and moving , drag drop yet to be implemented 4. hug executor complete 5. canvas technique part complete 6. widget selection complete
7. widget settings in progress as are the arrays associated,adding options to add info from pop up rather than at code completion
8. on the fly image widgets implemented
9. project file format , xml implemented , final format and extraction to complete, does not affect hug executor
10. colour tool complete 11. compiling, progress bar omitted , this saves a lot of time when compiling 12. coding up the demo beta now in progress , this will be release in binary format for testing
13. will be requesting permission to head up the demo , copyrighted to the original bacon, since the demo is been built on bacon plus the members or this forum and the demo's available, giving credit due where credit is due.
The Reason for implementing XML format are obvious.
As said the final XML format is to be completed , as in method of , so still work in progress
Can only say this demo has turn into more than a toy , but can also be used as such , the demo frame work is fairly open and adaptable.
Hoping to have release date for "beta demo testing" in approx 4 weeks time , << >> Hoping , work over-rides all else.
Regards
alexfish
|
|
|
Post by vovchik on Jul 19, 2012 9:21:00 GMT 1
Dear alexfish, Thanks for the update. It seems that you have done a lot of thinking - which can't be bad - and I am very eager to see the result. With kind regards, vovchik
|
|
|
Post by alexfish on Jul 31, 2012 23:47:32 GMT 1
UPDATE
CANVAS TOOL: METHOD OF WIDGET IDENTIFICATION COMPLETE ; 31 July 2012
I am a bit behind on this one , RE rsvg ,widget id within canvas, no method describe in lib have done own routine in x11 , source file an makefile to be appended to the demo this should auto run when in the demo .should also avoid conflicts with versions of gdk and cairo. same tool will be used for the eyedroper,.
eta "demo2" orig date + 4
regards alexfish
|
|
|
Post by alexfish on Aug 6, 2012 19:53:44 GMT 1
Accept my apologies for the delay with the demo
Here is some reasoning to explain , says he I think.
1, A long time has passed from the early days of computing , and today average user or even programmer does not understand some of the basic concepts of the pixel I.E. the dot you see on the screen.
2. Some of the terminology and methods used can be confusing, even for more so for me. in my days we dealt with the pixel and where you the user wanted it placed, then by if it is hit , the program would perform an action or event , "remember sprites" , in reality a widget is of the same concept. possible some users get hold of old books such as BBC basic guide or similar , most are downloadable from the net
3. I have read through most of the hug lib , nice work Peter , hug + bacon has everything you need to get to grips with the basics of computing and to be in control of the events as regards what you want to achieve
4. If you have been reading through this thread and have tried all the examples then most will realise it almost impossible to use live widgets within the project , " you need the canvas RE IMAGE, both are available within the hug + all the necessary bits to achieve something, all it takes is a little bit of imagination.
5 To that end, the first part of the demo will entail the use of the concepts of the bacon code and the hug lib as is RE: my first statement
6. In the first part we need to map our own screen, then to know what each widget in area "pixel array" represents as in ID , I.E. you as in you need to Know where it is + what action to perform when it is identified , as in click. or as Hug CALLBACK.
so instead of just plonking the widget on the screen and hope something magical will happen is beyond the concept of a true programmer or developer.
Hopefully,to begin with , will be writing the same code as regards the hug widget code , then map the widget within an array pixel by pixel , this will be mapped to either the CANVAS or the EVENT_IMAGE , note my work in this area and the Take up by some of the forum members, there was a reason for this,
within hug users can TEXT(IMAGE,MYFILE), again nice work Peter. it is a blinding concept and works well with svg files, so saves a lot of coding all you need is a one line to represent a widget, also note the similarity between svg code and the code used by the executor,
so on the believe compile for visual effect, the svg will be written to a file then read back via the command TEXT(IMAGE,MYFILE) or PICTURE in regards PICTURE ,hug only gives representation of the last canvas, there is a way around this look at the last few lines with reference to pix/image
here is an example of diy "hacking" the PICTURE identifiy the line within hug.bac
REM Define this as default drawing canvas hug_gui_properties.canvas = pix
then a bit of code to identify the actual canvas/image to write to
first canvas call
image1=hug_gui_properties.canvas
second canvas call
image2=hug_gui_properties.canvas
RAD_PICTURE("/path/to/file",image1,x,y,width,height)
RAD_PICTURE("/path/to/file",image2,x,y,width,height)
The PICTURE code:
SUB RAD_PICTURE (STRING hug_file$, long pix_id , int hug_xpos, int hug_ypos, int hug_xsize, int hug_ysize)
LOCAL pix, ebox, context, buf LOCAL xs, ys TYPE int
REM Get the associated canvas pix = pix_id ebox = hug_widget_ebox(STR$(pix))
IF HUG_CANVAS_TYPE = 0 THEN context = gdk_gc_new(pix) buf = gdk_pixbuf_new_from_file(hug_file$, 0)
gdk_draw_pixbuf(pix, context, buf, 0, 0, hug_xpos, hug_ypos, hug_xsize, hug_ysize, 0, 0, 0)
gtk_widget_queue_draw(hug_widget_image(STR$(ebox)) ) g_main_context_iteration(0, TRUE)
g_object_unref(context) g_object_unref(buf) END IF END SUB
This will help to illiminate flashy flickers when having to draw a back drop the the other bits your drawing on the canvas/ just hide one canvas the show when loaded remember to load image1 and image2 with same file , try it with the colour chooser demo
here is and example of svg button
<svg width="100px" height="100px" viewBox="0 0 100 100"> <rect x="0" y="0" width="75" height="25" fill="#d0d0d0" stroke="blue" stroke-width="2" /> <text x="8" y="16">Button1</text> </svg>
get the picture,
hopefully will be posting the the first part next week , have a busy work schedual fo next few days
Regards
alexfish
|
|
|
Post by vovchik on Aug 7, 2012 14:55:05 GMT 1
Dear Alex,
You just caused me to laugh:) I remember old xB800 for the screen buffer and starting to count pixels and modifying them. I once hacked Intel M$ Word (DOS) to use cyrillic by playing with pixel arrays there. Brings back memories:). In actual fact, grabbing X-display memory and getting the pixels into a user-accessible array is a very nice idea. Soon we shall have sprites:)
With kind regards, vovchik
|
|
|
Post by alexfish on Aug 8, 2012 2:46:09 GMT 1
Dear Alex, You just caused me to laugh:) I remember old xB800 for the screen buffer and starting to count pixels and modifying them. I once hacked Intel M$ Word (DOS) to use cyrillic by playing with pixel arrays there. Brings back memories:). In actual fact, grabbing X-display memory and getting the pixels into a user-accessible array is a very nice idea. Soon we shall have sprites:) With kind regards, vovchik Hi vovchik. yip the good old days but in principal as we stand to day nothing has change. never will , some one has to light the pixels up , I did not buy a commuter to look at fresh air. and certainly do not need any fancy yingo yango to produce the same , but this svg code is something else . Have a look at the canvas code , try commenting out the loading of the WHITE square you have a blank screen , "a black one" since all the bits are `0` " Read the CANVAS code then , comment out the part which loads a WHITE SQUARE, then paint your picture, also a bit of reading for new new comers to Linux www.control-escape.com/linux/lx-filesys.html can also look up these two command "man buffer and man bio" Have fun Alex
|
|
|
Post by alexfish on Jan 12, 2013 3:09:22 GMT 1
Don't know if this was previously posted ::easy method to move a widget::
Worth experimenting and adding to::
'****************************************************************'@ 'show how easy to attatch // put widget into layout ' moving widgets within a layout ' compiles bacon beta 29 ' Alexfish BaCon Converter.org ' Click on the button to move '********************************************************** TRAP LOCAL CATCH GOTO print_error
CONST Gtk$ = "libgtk-x11-2.0.so.0" CONST Gobject$ = "libgobject-2.0.so.0"
' Get needed functions from GTK IMPORT "gtk_init(int*,void*)" FROM Gtk$ TYPE void IMPORT "gtk_window_new(int)" FROM Gtk$ TYPE long IMPORT "gtk_window_set_title(long,char*)" FROM Gtk$ TYPE void IMPORT "gtk_table_new(int,int,int)" FROM Gtk$ TYPE long IMPORT "gtk_table_attach_defaults(long,long,int,int,int,int)" FROM Gtk$ TYPE void IMPORT "gtk_container_add(long,long)" FROM Gtk$ TYPE void IMPORT "gtk_widget_show_all(long)" FROM Gtk$ TYPE void IMPORT "gtk_main" FROM Gtk$ TYPE void IMPORT "gtk_exit(int)" FROM Gtk$ TYPE void IMPORT "gtk_button_new_with_mnemonic(char*)" FROM Gtk$ TYPE long '--------------------------------------------------------- ' use layout for moving widgets :: note: can read this better than the accepted IMPORT gtk_layout_move(long,long,int,int) FROM Gtk$ TYPE void IMPORT gtk_layout_new(long,long) FROM Gtk$ TYPE long IMPORT gtk_layout_put(long,long,int,int) FROM Gtk$ TYPE void IMPORT gtk_layout_set_size(long,int,int) FROM Gtk$ TYPE void
'--------------------------------------------------------------------------- IMPORT "g_signal_connect_data(long,char*,long,long,long,int)" FROM Gobject$ TYPE void '---------------------------------------------------------------------------
'var X to move widget in x direction X=0
' Callback for closing window SUB exit_prog gtk_exit(0) ENDSUB
SUB move_widget() INCR X,30 gtk_layout_move(layout,button,X,80) ENDSUB
'@ Main gtk_init(0, 0) window = gtk_window_new(0) gtk_window_set_title(window, "Moving Widgets") table = gtk_table_new(1, 1, 0) gtk_container_add(window, table)
'button = gtk_button_new_from_stock("gtk-quit") button = gtk_button_new_with_mnemonic("move widget -X")
'***************************************************************** '@ Layout layout = gtk_layout_new(0, 0) gtk_layout_set_size(layout,600, 600) '@ attach layout to table gtk_table_attach_defaults(table, layout,1, 8, 3, 7) '@ put the button in the layout gtk_layout_put(layout,button,0,0) '************************************************************** 'Show all gtk_widget_show_all(window)
'@ callbacks g_signal_connect_data(window, "delete-event", ADDRESS(exit_prog), 0, 0, 0) g_signal_connect_data(button, "clicked", ADDRESS(move_widget), 0, 0, 0)
'@ endless gtk_main
' @ print error LABEL print_error PRINT "GTK library ", Gtk$, " is not available on this platform!" END
Have fun and Regards
Alex
PS:: Ensure to mod the quotes if not copy and pasted correctly
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 12, 2013 6:15:59 GMT 1
Alex,
Is the end goal with your BaCon GUI Designer/IDE to be like a Glade tool but based on HUG?
Do you have defined goals with your project or is it coming together as time goes on?
When do you think you will have something BaCon users will be able to use to develop applications?
John
|
|
|
Post by alexfish on Jan 12, 2013 8:04:17 GMT 1
Alex, Is the end goal with your BaCon GUI Designer/IDE to be like a Glade tool but based on HUG? Do you have defined goals with your project or is it coming together as time goes on? When do you think you will have something BaCon users will be able to use to develop applications? John Very intertwined double questions are hard to decipher yet alone answer the rad-tool is the one i am devloping is on another thread , this thread is for "Anyone interested in collaborating on a RAD" I am not running a corporative company Need Time time to digest and decipher Question Time and am
|
|
|
Post by alexfish on Jan 12, 2013 14:21:23 GMT 1
Hi John
had to look back at some of the posts,
most of what you ask , has been posted above
plus some posts not to far back in this thread
in part if read post #213 , and what I have posted in the RAD TOOL DEMO , Remember "DEMO" and BETA.
@ SO
To cut along story short , reading up on svg and librsvg , something clicked into place <if you have no got one> Grab your self or download "Archimedes" BBC BASIC GUIDE.
then relate to some of latest post in the RAD TOOL DEMO.
things have not change.
Have fun and Regards
Alex
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 12, 2013 17:28:45 GMT 1
I have to admit that I'm not following the thrid party BaCon projects as closely as others here on the forum are. In that respect I feel I represent most of the visitors to the BaCon forum that have an in interest in using the language for their projects. I have heard terms such as AlexRAD and now this older thread being refreshed.
I thought my questions were clear and concise as to where are you going and what is the intent of the project. If you don't know then just say so and I'll be happy with that.
|
|
|
Post by alexfish on Jan 12, 2013 21:42:31 GMT 1
Hi John Where do I see the rad tool heading, It can have lots of uses , but in the Main I want everything under one roof, no dependencies except for the what would normally be on a nix system and light weight as possible Here is something also been worked on , At present Bacon uses a browser for Help. Imaging showing help within the rad tool using the nothing else but its self. Here is a screen-shot of some of what can be.. this is not a browser, "forgot to change the title" PS:: I did mention in the RAD DEMO that things had gone beyond , the original concept Thats Life , + 2 of Jan had something to do with it. Have Fun Alex Attachments:
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 13, 2013 1:23:02 GMT 1
There is nothing wrong with providing a library of high level tools to assist in development or extend an applications features. I was under the impression that you were creating a GUI designer with HUG and calling it AlexRAD. I think Peter's concept with HUG was to make it easier to create GUI interfaces wrapping Gtk. The more options BaCon programmer have the better.
|
|
|
Post by alexfish on Jan 13, 2013 3:11:16 GMT 1
So what are viewing now The TV times
heck I picked up on Bacon X months ago
And not meaning to be to strong about what i said , Computers are meant for using
You buy it to do what you want it to do ,
I don't need an ass telling me $2000 is better than 1$
and Peter to a point has proved that , and I have proved how powerful Bacon is
From Child to Adult, Bacon and its Concept is Exactly That ...
The other side of the coin I can make Windows as per say , Jump Hoops.. not many can do that.
Linux gives Every one a Chance , let it stay that way. Peter is young in comparison to some.
Brilliant mind , thoughtful about people , What more do you want. Don't twist
peoples intentions , or construe . or interject what they want to achieve,
one said , and actually quite true in Nix terms , if it breaks you get to keep both bits ,
+ I said you can keeps the eggs as well , but that has nothing to do with bacon.
Give the younger generation the Chance to get involved , Children of 5 ,6 7, 8,9 10
have no concept of what we as adults know about computers. or C or ASM
What do you think I am doing , sitting on pot of hidden Knowledge
If so so I must have Learnt it some where. I was born Naked same as as you.
Enjoy Live for what it is . enjoy Bacon if want. it is a free choice.
I don't ask people that give free time for commitments or to commit.
That is wrong.
BR
Alex
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 13, 2013 4:14:37 GMT 1
You fill the forum with posts about your discoveries and examples you create with the goal to motivate others to participate. When asked where your going with it or what the end goal is, I'm told it's wrong to ask because your not getting paid?
|
|