1. EuApp
- Posted by jmduro Apr 23, 2016
- 1474 views
I have been pleased to see that Matt Arriola's EuApp is still working under Debian Linux 8 32-bit. It didn't work when I used 64-bit Linux distributions.
I hope to be able to build a GUI on this in the KISS philosophy.
Jean-Marc
2. Re: EuApp
- Posted by SDPringle Apr 23, 2016
- 1467 views
I think EuGTK has the best hope of working well across platforms. It already works on both Linux and WIndows but on 32-bit only.
SD Pringle
3. Re: EuApp
- Posted by jimcbrown (admin) Apr 23, 2016
- 1447 views
I think EuGTK has the best hope of working well across platforms. It already works on both Linux and WIndows but on 32-bit only.
SD Pringle
It's the other way around - 32bit Windoze users are the ones who have reported problems in the past.
http://openeuphoria.org/forum/m/128549.wc
http://openeuphoria.org/forum/m/128550.wc
Meanwhile, it just works on 64bit Windoze...
4. Re: EuApp
- Posted by SDPringle Apr 23, 2016
- 1445 views
I think EuGTK has the best hope of working well across platforms. It already works on both Linux and WIndows but on 32-bit only.
SD Pringle
It's the other way around - 32bit Windoze users are the ones who have reported problems in the past.
http://openeuphoria.org/forum/m/128549.wc
http://openeuphoria.org/forum/m/128550.wc
Meanwhile, it just works on 64bit Windoze...
I stand corrected. I tried the demos on a loaned 32-bit box and the demos work fine on Linux-32bit. It is surprising the user has all of the demos working but his code doesn't work. Perhaps the libraries are relying on being installed in $HOME/demo. That would be lame. It is possible the user has bugs in his code. Do the demos work in linux 64-bit?
SD Pringle
5. Re: EuApp
- Posted by jimcbrown (admin) Apr 24, 2016
- 1419 views
I stand corrected. I tried the demos on a loaned 32-bit box and the demos work fine on Linux-32bit. Do the demos work in linux 64-bit?
AFAIK, yes. It was only Windoze that had issues.
It is surprising the user has all of the demos working but his code doesn't work. Perhaps the libraries are relying on being installed in $HOME/demo. That would be lame. It is possible the user has bugs in his code.
If you look at the old thread, it's the GTK demos (written in C) that worked, the euGTK demos (written in Eu) did not work (until EuGTK itself was fixed).
- installed a "gtk bundle" to c:/gtk and the gtk3-demo works properly
No visible GUI at all. There is a short pause and oE just quits. No message about not finding GTK files.
6. Re: EuApp
- Posted by jimcbrown (admin) Apr 24, 2016
- 1465 views
I have been pleased to see that Matt Arriola's EuApp is still working under Debian Linux 8 32-bit. It didn't work when I used 64-bit Linux distributions.
I hope to be able to build a GUI on this in the KISS philosophy.
Jean-Marc
I took a quick look, and that package inclues a 32 bit shared library (.so), which is why it won't work on 64 bits.
README say
euApp uses a slightly modified version of GraphApp 3.48 called libeuapp.so
The source for libeuapp.so does not seem to be available.
GraphApp itself is open-source though ( see http://enchantia.com/software/graphapp/package/about/LICENCE.TXT ), so perhaps someone could attempt to reconstruct it.
7. Re: EuApp
- Posted by jimcbrown (admin) Apr 24, 2016
- 1502 views
I took a quick look, and that package inclues a 32 bit shared library (.so), which is why it won't work on 64 bits.
README say
euApp uses a slightly modified version of GraphApp 3.48 called libeuapp.so
The source for libeuapp.so does not seem to be available.
GraphApp itself is open-source though ( see http://enchantia.com/software/graphapp/package/about/LICENCE.TXT ), so perhaps someone could attempt to reconstruct it.
I tried this. I grabbed the source and built a 32bit version of GraphApp using make dynamic (using /usr/share/apps/font as the font dir which I pulled out of libeuapp.so). I then started ex01.exu and it came up. (Had to rename switch() in ex01.exu to sswitch() and GraphApp.eu defined get_image_area() twice for some reason, but after that it came up.) So no mods necessary....
I then tried to build GraphApp on 64bits. It took some work to build, I got a weird error on x11/timer.c (something about %rcx and l being the wrong size) and had to use the BSD version of sleep, and I had to edit the Makefile to make it build everything with fPIC. (Seeing that GraphApp was last updated in 2005, I suspect that it may not have been tried on 64 bits before.)
I got it to build eventually, and with more makefile tweaking I was able to build and run the GraphApp smiley demo (the C one).
64bit eu won't run any eugraphapp demos though. I get a BadValue from libX11 (Protocol request 1, minor request code 0, resource id 0x0, integer parameter out of range for operation).
I tracked this down to the passing of Rect structures to the C code. It's a structure passed by value instead of a pointer. The eu code just passes down 4 ints.
Not sure why this trick works fine on 32bit but not on 64bit.
If I hack the C code to explicitly pass the rect value as 4 integers (instead of a single Rect struct parameter), then I can get a window to pop up.
8. Re: EuApp
- Posted by jmduro Apr 24, 2016
- 1447 views
As Jim wrote, there is some work to be done to get version 3.64 compiled. Here is what I did on Linux Debian 8 32-bits.
sudo apt-get install libx11-dev mkdir -p ~/apps/app/fonts cd GraphApp_3.64/src/ ./configure /usr/lib/i386-linux-gnu make dynamic sudo cp libapp.so /usr/local/lib/libapp.so sudo ldconfig /usr/local/lib cd .. cp -R * ~/apps/app/ cd ~/apps/app/examples Edit Makefile Change APP_PATH to APP_PATH = $(HOME)/apps/app/src Change X11LIB to X11LIB = /usr/lib/i386-linux-gnu make all
There are a lot of new functions in release 3.64 to be wrapped:
Functions that were in release 3.48 and seem to be removed
- euapp_fill_rect
- app_file_has_resources
New functions in release 3.64
- app_activate_control
- app_add_control
- app_add_note_button
- app_add_separator
- app_add_splitter
- app_alloc
- app_append_to_image_list
- app_arm
- app_attach_to_control
- app_attach_to_window
- app_bitmap_to_image
- app_center_rect
- app_change_default_font
- app_clip_line_to_rect
- app_clip_rect
- app_close_file
- app_close_folder
- app_rgbs_equal
- app_rgbs_equal
- app_copy_bits
- app_copy_region
- app_copy_rgbs
- app_copy_string
- app_correct_utf8
- app_current_folder
- app_debug_memory
- app_del_bitmap
- app_del_control
- app_del_cursor
- app_del_image_list
- app_del_image_reader
- app_del_menu
- app_del_menu_bar
- app_del_palette
- app_del_region
- app_del_string
- app_del_string_table
- app_disarm
- app_do_event
- app_draw_all
- app_draw_control
- app_error
- app_exec
- app_file_info
- app_file_size
- app_file_time
- app_fill_region
- app_find_best_cursor_size
- app_font_char_info
- app_form_file_path
- app_free
- app_get_bitmap_area
- app_get_control_area
- app_get_control_background
- app_get_control_cursor
- app_get_control_data
- app_get_control_foreground
- app_get_cursor_position
- app_get_file_name
- app_get_image_area
- app_get_menu_bar_font
- app_get_menu_font
- app_get_menu_foreground
- app_get_menu_item_font
- app_get_menu_item_foreground
- app_get_mouse_event
- app_get_standard_cursor
- app_get_string
- app_get_window_data
- app_get_window_palette
- app_get_window_under_cursor
- app_image_find_colour
- app_image_has_transparent_pixels
- app_image_to_bitmap
- app_insert_node
- app_inset_rect
- app_intersect_region
- app_intersect_region_with_rect
- app_is_armed
- app_is_highlighted (changement de nom ? ex app_highlight)
- app_locate_control
- app_locate_node
- app_make_folder
- app_alloc
- app_manager_hbox
- app_manager_vbox
- app_memory_used
- app_menu_item_is_enabled
- app_move_region
- app_move_window
- app_new_argb
- app_new_bitmap
- app_new_rgb
- app_new_rgb
- app_new_cursor
- app_new_image_list
- app_new_image_reader
- app_new_note_button
- app_new_palette
- app_new_point
- app_new_rect
- app_new_rect_region
- app_new_region
- app_new_rgb
- app_new_separator
- app_new_splitter
- app_new_string_table
- app_on_control_action
- app_on_control_deletion
- app_on_control_redraw
- app_on_control_refocus
- app_on_control_resize
- app_on_control_update
- app_on_window_move
- app_open_file
- app_open_folder
- app_palette_translation
- app_peek_event
- app_place_window_controls
- app_point_in_rect
- app_point_in_region
- app_points_equal
- app_process_events
- app_read_folder
- app_read_latin1_file
- app_read_latin1_line
- app_read_utf8_char
- app_read_utf8_file
- app_read_utf8_line
- app_realloc
- app_rect_abs
- app_rect_in_rect
- app_rect_in_region
- app_rect_intersects_rect
- app_rect_intersects_region
- app_rects_equal
- app_redraw_control_rect
- app_regex_match
- app_region_is_empty
- app_regions_equal
- app_remove_control
- app_remove_file
- app_remove_folder
- app_remove_node
- app_rename_file
- app_rename_folder
- app_rgbs_equal
- app_send_control_to_back
- app_set_rgb
- app_set_control_area
- app_set_control_autosize
- app_set_control_border
- app_set_control_cursor
- app_set_control_data
- app_set_control_gap
- app_set_control_layout
- app_set_control_tip
- app_set_current_folder
- app_set_cursor_position
- app_set_menu_bar_font
- app_set_menu_font
- app_set_menu_item_font
- app_set_string
- app_set_text_direction
- app_set_window_cursor
- app_set_window_data
- app_set_window_icon
- app_set_window_palette
- app_size_window
- app_subtract_region
- app_text_height
- app_text_line_length
- app_text_width
- app_texture_rect
- app_traverse_string_table
- app_unicode_char_to_utf8
- app_unicode_to_utf8
- app_union_region
- app_union_region_with_rect
- app_utf8_char_to_unicode
- app_utf8_is_ascii
- app_utf8_is_latin1
- app_utf8_length
- app_utf8_to_latin1
- app_utf8_to_unicode
- app_wait_event
- app_write_latin1
- app_write_utf8
- app_xor_region
- app_zero_alloc
Jean-Marc