Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 11:49:36 GMT 1
Post by Deleted on Dec 6, 2014 11:49:36 GMT 1
Good to hear. Any issues with IUP?
AIR should have the MID$() fixed tomorrow.
Good Night.
|
|
|
BASM
Dec 6, 2014 12:41:45 GMT 1
Post by vovchik on Dec 6, 2014 12:41:45 GMT 1
Dear John, Have a GTK window now but having problems with connecting the signal for destroying the window: ' get needed functions from GTK and gobject
DECLARE FUNCTION INIT LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_init" (aa AS INTEGER, bb AS STRING) AS VOID DECLARE FUNCTION WINDOW LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_new" (aa AS INTEGER) AS INTEGER DECLARE FUNCTION SHOW LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_widget_show" (aa AS INTEGER) AS VOID DECLARE FUNCTION DISPLAY LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_main" () AS VOID DECLARE FUNCTION QUIT LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_main_quit" () AS VOID DECLARE FUNCTION SIGNAL LIB "libgobject-2.0.so" ALIAS "g_signal_connect_data" (w AS INTEGER, s AS STRING, BYREF c AS STRING, x AS INTEGER, y AS INTEGER, z AS INTEGER) AS VOID
DIM win AS INTEGER
INIT(0, "") win = WINDOW(0) 'SIGNAL(win, "destroy", QUIT, 0, 0, 0) SHOW(win) DISPLAY() QUIT()
And AIR's strings are working: 5 Hello Two Hello AIR LEN('Hello World'): 11 LEN('Hello Two'): 9 65 A 4 this should be all lowercase! ?sdrawkcaB siht tnirP One Strip
With kind regards, vovchik
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 18:51:28 GMT 1
Post by Deleted on Dec 6, 2014 18:51:28 GMT 1
IUP is a wrapper for Gtk on the Linux platform. My IUP examples work meaning that your Gtk event logic is missing something. IMHO
Is QUIT() the callback function being called? Maybe something like this.
SIGNAL(win, "destroy", CALLBACK(QUIT), 0, 0, 0)
Glad AIR's string routines are working for you!
|
|
|
BASM
Dec 6, 2014 19:08:35 GMT 1
Post by vovchik on Dec 6, 2014 19:08:35 GMT 1
Dear John, I think I know what IUP is, but I also want to use GTK directly - have to work on signal handling, I suppose. As for strings, I added a bit more to what AIR has done. RIGHT$ is a real kluge and funny, but it works. What is needed is a functioning REPLACE$ and INSTR. Also, isspace (all types of white space) would be useful. I am looking at those functions. ------------------------ BASM STRING TESTS ------------------------ GO('Hello'): 5 Hello Two Hello AIR LEN('Hello World'): 11 LEN('Hello Two'): 9 ASC('A'): 65 CHR$(65): A LEN(MID$('John Smith', 1, 4)): 4 MID$('John Smith', 1, 4): John LCASE$('This Should be ALL LOWERCASE!'): this should be all lowercase! UCASE$('this should be all uppercase!'): THIS SHOULD BE ALL LOWERCASE! REVERSE$('Print this Backwards?'): ?sdrawkcaB siht tnirP LEFT$('One, Two, Three', 3): One RIGHT$('One, Two, Three', 5): Three LTRIM$(' Strip'): Strip RTRIM$('Strip '), '***': Strip*** '***', CHOP$(' Strip '), '***': ***Strip*** '***', SPACE$(20), '***': *** *** '***', FILL$(10, '-|'), '***': ***-|-|-|-|-|-|-|-|-|-|*** SUBSTR$('John Smith', 'Smith'): Smith ------------------------ END BASM STRING TESTS ------------------------
With kind regards, vovchik Attachments:strings01.bas.tar.gz (1.58 KB)
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 19:13:27 GMT 1
Post by Deleted on Dec 6, 2014 19:13:27 GMT 1
I'm bringing the rest of the BASIC code String.inc from he Windows version to the Linux version. INSTR() will work as soon as AIR fixes the ASM in MID$().
|
|
|
BASM
Dec 6, 2014 19:41:41 GMT 1
Post by vovchik on Dec 6, 2014 19:41:41 GMT 1
Dear John,
Thanks. This works fine (no errors):
DECLARE FUNCTION INIT LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_init" (aa AS INTEGER, bb AS STRING) AS VOID DECLARE FUNCTION WINDOW LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_new" (aa AS INTEGER) AS INTEGER DECLARE FUNCTION SHOW LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_widget_show" (aa AS INTEGER) AS VOID DECLARE FUNCTION DISPLAY LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_main" () AS VOID DECLARE FUNCTION QUIT LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_main_quit" () AS VOID DECLARE FUNCTION SIGNAL LIB "libgobject-2.0.so" ALIAS "g_signal_connect_data" (w AS INTEGER, s AS STRING, c AS INTEGER, x AS INTEGER, y AS INTEGER, z AS INTEGER) AS VOID
DIM win AS INTEGER
INIT(0, "") win = WINDOW(0) SIGNAL(win, "destroy", CALLBACK(QUIT), 0, 0, 0) SHOW(win) DISPLAY()
With kind regards, vovchik
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 19:47:20 GMT 1
Post by Deleted on Dec 6, 2014 19:47:20 GMT 1
Sweet!
I'll post something here as soon as I hear from AIR on the MID$() issue.
|
|
|
BASM
Dec 6, 2014 21:44:07 GMT 1
Post by vovchik on Dec 6, 2014 21:44:07 GMT 1
Dear John,
Here is something slightly more elaborate in GTK. Don't yet know why the button text doesn't show.
With kind regards, vovchik
' get needed functions from GTK and gobject libs ' gtk DECLARE FUNCTION INIT LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_init" (aa AS INTEGER, bb AS STRING) AS VOID DECLARE FUNCTION WINDOW LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_new" (aa AS INTEGER) AS INTEGER DECLARE FUNCTION WINTITLE LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_set_title" (w AS INTEGER, t AS STRING) AS VOID DECLARE FUNCTION WINSIZE LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_set_default_size" (w AS INTEGER, width AS INTEGER, height AS INTEGER) AS VOID DECLARE FUNCTION WINPOS LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_set_position" (w AS INTEGER, pos AS INTEGER) AS VOID DECLARE FUNCTION WINICON LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_window_set_icon_name" (w AS INTEGER, i AS STRING) AS VOID DECLARE FUNCTION BUTTON LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_button_new_with_label" (b AS STRING) AS INTEGER DECLARE FUNCTION LABEL LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_label_new" (s AS STRING) AS INTEGER DECLARE FUNCTION MARKUP LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_label_set_markup" (l AS INTEGER, t AS STRING) AS VOID DECLARE FUNCTION FIXED LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_fixed_new" () AS INTEGER DECLARE FUNCTION CONTAINER_ADD LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_container_add" (p AS INTEGER, c AS INTEGER) AS VOID DECLARE FUNCTION SHOW LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_widget_show" (aa AS INTEGER) AS VOID DECLARE FUNCTION SHOWALL LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_widget_show_all" (aa AS INTEGER) AS VOID DECLARE FUNCTION DISPLAY LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_main" () AS VOID DECLARE FUNCTION QUIT LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_main_quit" () AS VOID DECLARE FUNCTION ATTACH LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_fixed_put" (f AS INTEGER, w AS INTEGER, x AS INTEGER, y AS INTEGER) AS VOID DECLARE FUNCTION WIDGET_SIZE LIB "libgtk-x11-2.0.so.0" ALIAS "gtk_widget_set_size_request" (w AS INTEGER, width AS INTEGER, HEIGHT AS INTEGER) AS VOID ' gobject DECLARE FUNCTION SIGNAL LIB "libgobject-2.0.so" ALIAS "g_signal_connect_data" (w AS INTEGER, s AS STRING, c AS INTEGER, x AS INTEGER, y AS INTEGER, z AS INTEGER) AS VOID DECLARE FUNCTION PROPERTY LIB "libgobject-2.0.so" ALIAS "gobject_set" (o AS INTEGER, p AS STRING, v AS STRING) AS VOID
' declare widget vars
DIM win AS INTEGER DIM but AS INTEGER DIM lab AS INTEGER DIM fix AS INTEGER
SUB MYCLICK() PRINT "You pressed a button, so we are quitting." QUIT() END SUB
INIT(0, "") win = WINDOW(0) WINTITLE(win, "BASM GTK") WINSIZE(win, 300, 500) WINPOS(win, 1) WINICON(win, "gtk-info") SIGNAL(win, "destroy", CALLBACK(QUIT), 0, 0, 0) fix = FIXED() CONTAINER_ADD(win, fix) lab = LABEL("") MARKUP(lab, "<span color='red' font='Sans Bold 32'>A LABEL</span>") but = BUTTON("Quit") WIDGET_SIZE(but, 80, 30) SIGNAL(but, "clicked", CALLBACK(MYCLICK), 0, 0, 0) ATTACH(fix, but, 210, 460) ATTACH(fix, lab, 50, 50) SHOWALL(win) DISPLAY()
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 21:58:41 GMT 1
Post by Deleted on Dec 6, 2014 21:58:41 GMT 1
Why does that sound like the IupSeAtribute() issue?
I'm also not sure about using single quotes embedded in your strings. Never tried that in IUP. Then again you are generating HTML.
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 22:18:44 GMT 1
Post by Deleted on Dec 6, 2014 22:18:44 GMT 1
Doesn't work for me. Nor does the previous example. (seg fault) BASM Linux 64 (i386 output) - Version 1.0 Build 2 Currently compiling "basmgtk02.bas": - Compile time -> 0.005361 seconds - Assemble time -> 0.000439 seconds - Linking time -> 0.000232 seconds ------------------------------- - Total time -> 0.006131 seconds jrs@laptop:~/BASM64/Examples/gtk$ ./basmgtk02 Gtk-Message: Failed to load module "unity-gtk-module" GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications. Segmentation fault (core dumped)
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 22:31:55 GMT 1
Post by Deleted on Dec 6, 2014 22:31:55 GMT 1
It was my BASM 64 using 32 bit libs (full path) and a rename to libgobject-2.0.so.0.4002.0 in your program.
DECLARE FUNCTION INIT LIB "/usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0" ALIAS "gtk_init" (aa AS INTEGER, bb AS STRING) AS VOID DECLARE FUNCTION WINDOW LIB "/usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0" ALIAS "gtk_window_new" (aa AS INTEGER) AS INTEGER DECLARE FUNCTION SHOW LIB "/usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0" ALIAS "gtk_widget_show" (aa AS INTEGER) AS VOID DECLARE FUNCTION DISPLAY LIB "/usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0" ALIAS "gtk_main" () AS VOID DECLARE FUNCTION QUIT LIB "/usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0" ALIAS "gtk_main_quit" () AS VOID DECLARE FUNCTION SIGNAL LIB "/usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4002.0" ALIAS "g_signal_connect_data" (w AS INTEGER, s AS STRING, c AS INTEGER, x AS INTEGER, y AS INTEGER, z AS INTEGER) AS VOID
DIM win AS INTEGER
INIT(0, "") win = WINDOW(0) SIGNAL(win, "destroy", CALLBACK(QUIT), 0, 0, 0) SHOW(win) DISPLAY()
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 6, 2014 23:18:07 GMT 1
Post by Deleted on Dec 6, 2014 23:18:07 GMT 1
AIR sent me the fix for the MID$() function and I'm redoing the Strings.inc from the Windows distribution to build the new Linux version. I'll post it soon.
FWIW
We may be over stating our welcome here on the BaCon forum with the BASM project. (@peter - just say the word) It would be great if you're interested in the BASM project you join that forum. I would like to get AIR, Mike (FBLS), vovchik, and Charles (O2) as contributors to the project. That would be a good mix of both Windows and Linux talents.
|
|
|
BASM
Dec 7, 2014 0:31:19 GMT 1
Post by vovchik on Dec 7, 2014 0:31:19 GMT 1
Dear John, Just for fun... but still wondering about the button text on my machine. Can you see it? With kind regards, vovchik PS. We now know...change to your lib location before trying to compile. Attachments:gtkimg_img_src.tar.gz (24.57 KB)
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 7, 2014 1:09:43 GMT 1
Post by Deleted on Dec 7, 2014 1:09:43 GMT 1
Nope. Can't see the button text. It may be a color or font issue. I have tried everything I know to get the text to display in the button. Maybe we need to get some of the other BaCon pros to have a peek. Works with IUP. I like the basmgtk_img.bas demo. It's starting to look like a real app.
|
|
Deleted
Deleted Member
Posts: 0
|
BASM
Dec 7, 2014 1:56:01 GMT 1
Post by Deleted on Dec 7, 2014 1:56:01 GMT 1
Setting Label text doesn't work either. Button text is a label. You can't set the text either. My guess is Gtk doesn't have a default font to work with.
I'm going the IUP route as I need cross platform support.
Please don't let that discourage you from your Gtk efforts. I think it would be cool if you could use HUG (as a shared object) with BASM.
|
|