|
Post by alexfish on Apr 19, 2023 22:34:50 GMT 1
It ain,t Gona HappenAnd Then 'TEST CURVE timer INCLUDE "hug35.bac"
HUGOPTIONS("NOSCALING") HUGOPTIONS("CANVASCAIRO") HOME$= GETENVIRON$("HOME")
FUNCTION SURFACE() LOCAL pix, context, ebox,surface REM Get the associated canvas pix = hug_gui_properties.canvas ebox = hug_widget_ebox(STR$(pix)) RETURN ( hug_widget_surface( STR$(pix)))
END FUNCTION
'============================================================
SUB drawBezierOvalQuarter(long cr, centerX, centerY, sizeX, sizeY)
cairo_move_to(cr, centerX - (sizeX) , centerY - (0)) cairo_curve_to(cr, \ centerX - sizeX, \ centerY - 0.552 * sizeY, \ centerX - 0.552 * sizeX, \ centerY - sizeY, \ centerX - 0, \ centerX - sizeY)
cairo_stroke(cr)
END SUB
SUB drawBezierOval(long cr,double centerX,double centerY,double sizeX, double sizeY)
drawBezierOvalQuarter(cr, centerX, centerY, -sizeX, sizeY) drawBezierOvalQuarter(cr, centerX, centerY, sizeX, sizeY) drawBezierOvalQuarter(cr, centerX, centerY, sizeX, -sizeY) drawBezierOvalQuarter(cr, centerX, centerY, -sizeX, -sizeY)
END SUB
FUNCTION Draw LOCAL surf
surf = SURFACE() cr = cairo_create (surf) cairo_set_source_rgb(cr,1,1,1) cairo_paint(cr)
cairo_set_source_rgb(cr,1,0,0) drawBezierOval(cr, 200, 200, 60, 60)
cairo_surface_flush(surf) cairo_destroy(cr) gtk_image_set_from_surface (hug_gui_properties.canvas,surf)
OUT("I finally get a Circle","#FF0000","#00FFFF",20,20) tmf = TIMER RETURN TRUE
END FUNCTION
'============================================================ win = WINDOW("10 Bottle Later",1000,800) but = BUTTON("draw",75,20) ATTACH(win,but,3,0) can = CANVAS(600,600) ATTACH(win,can,0,33)
TIMEOUT(10,Draw) DISPLAY stackoverflow.com/questions/1734745/how-to-create-circle-with-b%C3%A9zier-curves
|
|
|
Post by alexfish on Apr 20, 2023 3:33:10 GMT 1
Coming Soon"that's the same as the last one" No its a Remake see! SEE Second Picky Third picky :: Almost there
|
|
|
Post by alexfish on Apr 20, 2023 16:38:58 GMT 1
Here making Widgets
TEXTBOX: needs further work , but need to Know these Basic bits RE Following post
Press 0 to clear the text : and as mention very basic at present
'TEST TEXTBOX INCLUDE "hug35.bac"
HUGOPTIONS("NOSCALING") HUGOPTIONS("CANVASCAIRO") HOME$= GETENVIRON$("HOME")
LOCAL txt$ FUNCTION SETTEXT(long hug_widget)
LOCAL image,surface,cr image = hug_widget_image(STR$(hug_widget)) surface = hug_widget_surface(STR$(image)) IF KEY() THEN
IF (char*)CHR$(KEY()) = "0" THEN txt$ = "" ELSE txt$ = txt$ & (char*)CHR$(KEY()) END IF cr = cairo_create (surface) cairo_set_source_rgb(cr,1,1,0) cairo_paint(cr) cairo_set_source_rgb(cr,0,0,1) cairo_select_font_face (cr,CAIROFONT$,0, 0) cairo_set_font_size(cr,CAIRO_FONT_SIZE) 'cairo_set_line_width (cr,1) cairo_move_to (cr,3,CAIRO_FONT_SIZE) cairo_show_text(cr,txt$ ) 'cairo_stroke(cr) cairo_destroy(cr) cairo_surface_flush(surface) gtk_image_set_from_surface(image,surface) hug_gui_properties.last_key_pressed=0 END IF
' TODO Cursor" RETURN TRUE END FUNCTION
'============================================================ FUNCTION TEXTBOX(int hug_xsize,int hug_ysize) LOCAL image, ebox, pix,pixbuf,surf,cr
surf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,hug_xsize, hug_ysize) cr = cairo_create (surf) cairo_set_source_rgb(cr,1,1,0) cairo_paint(cr)
image = gtk_image_new() gtk_image_set_from_surface(image,surf) pix = image gtk_misc_set_alignment(image, 0, 0) gtk_widget_queue_draw(image) ebox = gtk_event_box_new() gtk_event_box_set_visible_window(ebox,0)
gtk_widget_set_events(ebox, GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK) 'g_signal_connect_data(ebox, "button-press-event", GETTEXT, 20, 0, 0) 'g_signal_connect_data(ebox, "button-release-event", GETTEXT, 40, 0, 0) 'g_signal_connect_data(ebox, "motion-notify-event", GETFOCUS, 0, 0, 0) 'g_signal_connect_data(ebox, "scroll-event", hug_mouse_event, 10, 0, G_CONNECT_AFTER) 'g_signal_connect_data(ebox, "leave-notify-event", UNFOCUSED, 30, 0, 0) 'g_signal_connect_data(ebox, "key-press-event", GETTEXT, 0, 0, 0) gtk_container_add(ebox, image)
IF HUG_WIDGET_SHOW THEN gtk_widget_show_all(ebox) 'hug_widget_context(STR$(pix)) = context hug_widget_surface(STR$(image)) = surf hug_widget_pix(STR$(image)) = pix hug_widget_ebox(STR$(pix)) = ebox hug_widget_image(STR$(ebox)) = image hug_widget_xsize(STR$(ebox)) = hug_xsize hug_widget_ysize(STR$(ebox)) = hug_ysize hug_widget_signal(STR$(ebox)) = 4 hug_widget_s_widget(STR$(ebox)) = ebox hug_widget_type$(STR$(ebox)) = "canvas" hug_widget_focus(STR$(ebox)) = ebox REM Define this as default drawing canvas 'hug_gui_properties.canvas = pix WIDGET = ebox
RETURN ebox
END FUNCTION '============================================############# FUNCTION SURFACE() LOCAL pix, ebox,surface REM Get the associated canvas pix = hug_gui_properties.canvas ebox = hug_widget_ebox(STR$(pix)) RETURN ( hug_widget_surface( STR$(pix)))
END FUNCTION '============================================############# FUNCTION CHECKALL()
IF KEY() THEN FOCUS(text) SETTEXT(text) END IF
RETURN TRUE END FUNCTION '============================================================ 'Main '============================================================ win = WINDOW("Basi Set up",1000,800) can = CANVAS(600,600) ATTACH(win,can,0,33) text = TEXTBOX(300,25) CALLBACK(text,SETTEXT) ATTACH(win,text,3,3) FOCUS(text) but=BUTTON("Test",-1,30) ATTACH(win,but,306,3)
TIMEOUT(100,CHECKALL) '============================================================ DISPLAY
|
|
|
Post by alexfish on Apr 20, 2023 19:35:09 GMT 1
The Widget:: Updated : + further bits to follow usage Click the button
'TEST TEXTBOX
DECLARE hug_widget_cbuffer ASSOC NUMBER INCLUDE "hug35.bac"
HUGOPTIONS("NOSCALING") HUGOPTIONS("CANVASCAIRO") HOME$= GETENVIRON$("HOME")
'============================================================ FUNCTION TEXTBOX(int hug_xsize,int hug_ysize) LOCAL image, ebox, pix,pixbuf,surf,cr,buffer buffer = gtk_text_buffer_new(0) surf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,hug_xsize, hug_ysize) cr = cairo_create (surf) cairo_set_source_rgb(cr,1,1,0) cairo_paint(cr)
image = gtk_image_new() gtk_image_set_from_surface(image,surf) pix = image gtk_misc_set_alignment(image, 0, 0) gtk_widget_queue_draw(image) ebox = gtk_event_box_new() gtk_event_box_set_visible_window(ebox,0)
gtk_widget_set_events(ebox, GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK) 'g_signal_connect_data(ebox, "button-press-event", GETTEXT, 20, 0, 0) 'g_signal_connect_data(ebox, "button-release-event", GETTEXT, 40, 0, 0) 'g_signal_connect_data(ebox, "motion-notify-event", GETFOCUS, 0, 0, 0) 'g_signal_connect_data(ebox, "scroll-event", hug_mouse_event, 10, 0, G_CONNECT_AFTER) 'g_signal_connect_data(ebox, "leave-notify-event", UNFOCUSED, 30, 0, 0) 'g_signal_connect_data(ebox, "key-press-event", GETTEXT, 0, 0, 0) gtk_container_add(ebox, image)
IF HUG_WIDGET_SHOW THEN gtk_widget_show_all(ebox) hug_widget_cbuffer(STR$(ebox))=buffer hug_widget_surface(STR$(image)) = surf hug_widget_pix(STR$(image)) = pix hug_widget_ebox(STR$(pix)) = ebox hug_widget_image(STR$(ebox)) = image hug_widget_xsize(STR$(ebox)) = hug_xsize hug_widget_ysize(STR$(ebox)) = hug_ysize hug_widget_signal(STR$(ebox)) = 4 hug_widget_s_widget(STR$(ebox)) = ebox hug_widget_type$(STR$(ebox)) = "canvastext" hug_widget_focus(STR$(ebox)) = ebox WIDGET = ebox
RETURN ebox
END FUNCTION
FUNCTION TEXTC(NUMBER hug_widget, STRING hug_text$) LOCAL image, ebox, pix,pixbuf,buffer LOCAL surface,cr LOCAL iter1, iter2 SELECT hug_widget_type$(STR$(hug_widget)) CASE "canvastext" /* hug_widget_cbuffer(STR$(ebox))=buffer */ image = hug_widget_image(STR$(hug_widget)) surface = hug_widget_surface(STR$(image)) buffer = hug_widget_cbuffer(STR$(hug_widget)) IF LEN(hug_text$) EQ 0 THEN gtk_text_buffer_set_text(buffer, "", 0) ELSE gtk_text_buffer_insert_at_cursor(buffer, hug_text$, -1) END IF iter1 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) iter2 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) gtk_text_buffer_get_start_iter(hug_widget_cbuffer(STR$(hug_widget)), iter1) gtk_text_buffer_get_end_iter(hug_widget_cbuffer(STR$(hug_widget)), iter2) hug_text$ = gtk_text_buffer_get_text(hug_widget_cbuffer(STR$(hug_widget)), iter1, iter2, 1) FREE iter1 FREE iter2 cr = cairo_create (surface) cairo_set_source_rgb(cr,1,1,0) cairo_paint(cr) cairo_set_source_rgb(cr,0,0,1) cairo_select_font_face (cr,CAIROFONT$,0, 0) cairo_set_font_size(cr,CAIRO_FONT_SIZE) cairo_move_to (cr,3,CAIRO_FONT_SIZE) cairo_show_text(cr,hug_text$ ) cairo_destroy(cr) cairo_surface_flush(surface) gtk_image_set_from_surface(image,surface)
END SELECT END SUB
'============================================#############
FUNCTION GRABC$(long hug_widget) LOCAL image, ebox, pix,pixbuf,buffer LOCAL surface,cr LOCAL iter1, iter2 LOCAL hug_text$
SELECT hug_widget_type$(STR$(hug_widget)) CASE "canvastext" iter1 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) iter2 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) gtk_text_buffer_get_start_iter(hug_widget_cbuffer(STR$(hug_widget)), iter1) gtk_text_buffer_get_end_iter(hug_widget_cbuffer(STR$(hug_widget)), iter2) hug_text$ = gtk_text_buffer_get_text(hug_widget_cbuffer(STR$(hug_widget)), iter1, iter2, 1) FREE iter1 FREE iter2 END SELECT RETURN hug_text$
END FUNCTION '============================================================
'============================================================ SUB Grab_Text() LOCAL text$= GRABC$(text2) TEXTC(text,"") TEXTC(text,text$) TEXTC(text2," ALL DONE") END SUB '============================================================ 'Main '============================================================ win = WINDOW("Basi Set up",1000,800) can = CANVAS(600,600) ATTACH(win,can,0,33) text = TEXTBOX(300,25)
ATTACH(win,text,3,3) TEXTC(text,"Bacon Text") 'FOCUS(text) but=BUTTON("Get Text",-1,30) ATTACH(win,but,306,3) CALLBACK(but,Grab_Text)
text2= TEXTBOX(300,25)
ATTACH(win,text2,3,50) TEXTC(text2,"Hello")
'============================================================ DISPLAY
|
|
|
Post by alexfish on Apr 20, 2023 21:30:33 GMT 1
So FROM that
can build callback that differ
can CALLBACK TEXTBOX = EBOX
need to DEFINE callback on the cbuffer
EXAMPLE
SUB CALLBACKC(NUMBER hug_widget, void* hug_addr) LOCAL signal
signal = hug_widget_signal(STR$(hug_widget))
SELECT signal CASE 4 g_signal_connect_data(hug_widget_cbuffer(STR$(hug_widget)), "changed", hug_addr, 0, 0, 0)
END SELECT END SUB
I pick the TEXTBOX since that will be the Hardest to Finalize , I think says he +
making a canvas button types is obious
Thats A wrap ::
next using the above methods as Canvas layers or frames using the Callbacks
IE like Frames slices : first layer -> |||||||||| -< last layer
|
|
|
Post by alexfish on Apr 20, 2023 22:02:43 GMT 1
'TEST TEXTBOX 3
DECLARE hug_widget_cbuffer ASSOC NUMBER INCLUDE "hug35.bac"
HUGOPTIONS("NOSCALING") HUGOPTIONS("CANVASCAIRO") HOME$= GETENVIRON$("HOME")
SUB CALLBACKC(NUMBER hug_widget, void* hug_addr) LOCAL signal
signal = hug_widget_signal(STR$(hug_widget))
SELECT signal CASE 4 g_signal_connect_data(hug_widget_cbuffer(STR$(hug_widget)), "changed", hug_addr, 0, 0, 0)
END SELECT END SUB
'============================================================ FUNCTION TEXTBOX(int hug_xsize,int hug_ysize) LOCAL image, ebox, pix,pixbuf,surf,cr,buffer buffer = gtk_text_buffer_new(0) surf = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,hug_xsize, hug_ysize) cr = cairo_create (surf) cairo_set_source_rgb(cr,1,1,0) cairo_paint(cr)
image = gtk_image_new() gtk_image_set_from_surface(image,surf) pix = image gtk_misc_set_alignment(image, 0, 0) gtk_widget_queue_draw(image) ebox = gtk_event_box_new() gtk_event_box_set_visible_window(ebox,0)
gtk_widget_set_events(ebox, GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK) 'g_signal_connect_data(ebox, "button-press-event", GETTEXT, 20, 0, 0) 'g_signal_connect_data(ebox, "button-release-event", GETTEXT, 40, 0, 0) 'g_signal_connect_data(ebox, "motion-notify-event", GETFOCUS, 0, 0, 0) 'g_signal_connect_data(ebox, "scroll-event", hug_mouse_event, 10, 0, G_CONNECT_AFTER) 'g_signal_connect_data(ebox, "leave-notify-event", UNFOCUSED, 30, 0, 0) 'g_signal_connect_data(ebox, "key-press-event", GETTEXT, 0, 0, 0) gtk_container_add(ebox, image)
IF HUG_WIDGET_SHOW THEN gtk_widget_show_all(ebox) hug_widget_cbuffer(STR$(ebox))=buffer hug_widget_surface(STR$(image)) = surf hug_widget_pix(STR$(image)) = pix hug_widget_ebox(STR$(pix)) = ebox hug_widget_image(STR$(ebox)) = image hug_widget_xsize(STR$(ebox)) = hug_xsize hug_widget_ysize(STR$(ebox)) = hug_ysize hug_widget_signal(STR$(ebox)) = 4 hug_widget_s_widget(STR$(ebox)) = ebox hug_widget_type$(STR$(ebox)) = "canvastext" hug_widget_focus(STR$(ebox)) = ebox WIDGET = ebox
RETURN ebox
END FUNCTION
FUNCTION TEXTC(NUMBER hug_widget, STRING hug_text$) LOCAL image, ebox, pix,pixbuf,buffer LOCAL surface,cr LOCAL iter1, iter2 SELECT hug_widget_type$(STR$(hug_widget)) CASE "canvastext" /* hug_widget_cbuffer(STR$(ebox))=buffer */ image = hug_widget_image(STR$(hug_widget)) surface = hug_widget_surface(STR$(image)) buffer = hug_widget_cbuffer(STR$(hug_widget)) IF LEN(hug_text$) EQ 0 THEN gtk_text_buffer_set_text(buffer, "", 0) ELSE gtk_text_buffer_insert_at_cursor(buffer, hug_text$, -1) END IF iter1 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) iter2 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) gtk_text_buffer_get_start_iter(hug_widget_cbuffer(STR$(hug_widget)), iter1) gtk_text_buffer_get_end_iter(hug_widget_cbuffer(STR$(hug_widget)), iter2) hug_text$ = gtk_text_buffer_get_text(hug_widget_cbuffer(STR$(hug_widget)), iter1, iter2, 1) FREE iter1 FREE iter2
cr = cairo_create (surface) cairo_set_source_rgb(cr,1,1,0) cairo_paint(cr) cairo_set_source_rgb(cr,0,0,1) cairo_select_font_face (cr,CAIROFONT$,0, 0) cairo_set_font_size(cr,CAIRO_FONT_SIZE) cairo_move_to (cr,3,CAIRO_FONT_SIZE) cairo_show_text(cr,hug_text$ ) cairo_destroy(cr) cairo_surface_flush(surface) gtk_image_set_from_surface(image,surface)
END SELECT END SUB
'============================================#############
FUNCTION GRABC$(long hug_widget) LOCAL image, ebox, pix,pixbuf,buffer LOCAL surface,cr LOCAL iter1, iter2 LOCAL hug_text$
SELECT hug_widget_type$(STR$(hug_widget)) CASE "canvastext" iter1 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) iter2 = MEMORY(HUG_DEFAULT_WIDGET_SIZE) gtk_text_buffer_get_start_iter(hug_widget_cbuffer(STR$(hug_widget)), iter1) gtk_text_buffer_get_end_iter(hug_widget_cbuffer(STR$(hug_widget)), iter2) hug_text$ = gtk_text_buffer_get_text(hug_widget_cbuffer(STR$(hug_widget)), iter1, iter2, 1) FREE iter1 FREE iter2 END SELECT RETURN hug_text$
END FUNCTION '============================================================
'============================================================ SUB Grab_Text() LOCAL text$= GRABC$(text2) TEXTC(text,"") TEXTC(text,text$) TEXTC(text2," ALL DONE") END SUB
SUB Check_Ev(long hug_widget) PRINT "ChangeD" END SUB
SUB WHICH(long hug_widget) TEXTC(text3,"") TEXTC(text3,STR$(hug_widget))
END SUB '============================================================ 'Main '============================================================ win = WINDOW("Basi Set up",1000,800) can = CANVAS(600,600) SQUARE("#000000",0,0,600,600,1) ATTACH(win,can,0,33) text = TEXTBOX(300,25)
ATTACH(win,text,3,3) TEXTC(text,"Bacon Text") CALLBACKC(text,Check_Ev) CALLBACK(text,WHICH) 'FOCUS(text) but=BUTTON("Get Text",-1,25) ATTACH(win,but,306,3) CALLBACK(but,Grab_Text)
text2= TEXTBOX(300,25) ATTACH(win,text2,3,50) TEXTC(text2,"Hello") CALLBACK(text2,WHICH) text3 = TEXTBOX(300,25) ATTACH(win,text3,3,85) '============================================================ DISPLAY Attachments:
|
|
|
Post by alexfish on Apr 21, 2023 0:03:13 GMT 1
Then the likes go into widgets.bac
And Called from
demo code
INCLUDE "hug35.bac" INCLUDE "widgets.bac" HUGOPTIONS("NOSCALING") HUGOPTIONS("CANVASCAIRO") HOME$= GETENVIRON$("HOME")
'============================================================
'============================================================ SUB Grab_Text() LOCAL text$= GRABC$(text2) TEXTC(text,"") TEXTC(text,text$) TEXTC(text2," ALL DONE") END SUB
SUB Check_Ev(long hug_widget) PRINT "ChangeD" END SUB
SUB WHICH(long hug_widget) TEXTC(text3,"") TEXTC(text3,STR$(hug_widget))
END SUB '============================================================ 'Main '============================================================ win = WINDOW("Basic Set up",1000,800) can = CANVAS(600,600) SQUARE("#000000",0,0,600,600,1) ATTACH(win,can,0,33) text = TEXTBOX(300,25)
ATTACH(win,text,3,3) TEXTC(text,"Bacon Text") CALLBACKC(text,Check_Ev) CALLBACK(text,WHICH) 'FOCUS(text) but=BUTTON("Get Text",-1,25) ATTACH(win,but,306,3) CALLBACK(but,Grab_Text)
text2= TEXTBOX(300,25) ATTACH(win,text2,3,50) TEXTC(text2,"Hello") CALLBACK(text2,WHICH) text3 = TEXTBOX(300,25) ATTACH(win,text3,3,85) '============================================================ DISPLAY
Then Calls Are Noted By FOO C hence in a hug context TEXT(widget)gtk_widget : TEXTC(widget)canvas widget and the widgets will also work in the original hug.bac based ,exception been /
gtk_image_set_from_surface hence API will have = call in hug.bac to the 'gtk_image_set_from_surface' IE the hug2.5 version but option to apply in hug.bac as include/include
|
|
|
Post by alexfish on Apr 21, 2023 1:25:25 GMT 1
To Some of The Why And Example of BaCon hug35 WEBVIEW looks like Dillo but is Not, it is hug WEBVIEW , very limited but it works + it be pretty fast How Fast Err, Err Well about 20 seconds but if cache'd then obvious and update can work in the background so docs ? all of bacon site cache'd as per picky real 0m14.243s user 0m9.103s sys 0m0.650
so full update = 6seconds later mindful that this is big big page This forum main page real 0m6.615s user 0m3.580s sys 0m0.517s
ADDED when I say bacon web the base code uses libsoup did a thread httpie HEREPicky second Pick = this site as of now : bit of work to do on sizing Attachments:
|
|
|
Post by alexfish on Apr 21, 2023 4:57:59 GMT 1
Sorted Time for zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz then scrolled down to bottom See picy 2 :: them image sizes Again now zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz Attachments:
|
|
|
Post by alexfish on Apr 21, 2023 13:43:20 GMT 1
Managed to do a Micro Browser with hug3.5 Try this with Bacon Webkit tried with hug.bac , needs looking at will be posting later with details as the 3.5 version for hug.bac , read above every time you read this post = needs looking at Browser size = 600x429 BR Alex
|
|
|
Post by alexfish on Apr 21, 2023 19:13:06 GMT 1
the above was using app to do lifting during the searches of cutycapt came across firefox What, firefoxy headless firefox --screenshot https://www.basic-converter.org so this is first in these tests Picky What can I say , first test, need to scale these down Attachments:
|
|
|
Post by alexfish on Apr 21, 2023 20:59:57 GMT 1
Did a mock up with firefox Hard coded the SYSTEM command
INCLUDE "hug35.bac"
HOME$= GETENVIRON$("HOME") '===================================================================== FUNCTION WEBVIEW(hug_xsize,hug_ysize) LOCAL ebox,scrolled,image image = gtk_image_new() PRINT image ebox = gtk_event_box_new() gtk_widget_set_size_request(ebox,1000,600) scrolled = gtk_scrolled_window_new(0, 0) gtk_widget_set_size_request(scrolled,1000,600) gtk_scrolled_window_set_policy(scrolled, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC) gtk_scrolled_window_set_shadow_type(scrolled, GTK_SHADOW_ETCHED_OUT) gtk_container_add(scrolled, image)
IF HUG_WIDGET_SHOW THEN gtk_widget_show_all(scrolled) hug_widget_xsize(STR$(scrolled)) = hug_xsize hug_widget_ysize(STR$(scrolled)) = hug_ysize
hug_widget_signal(STR$(ebox)) = 4 hug_widget_s_widget(STR$(scrolled))=ebox hug_widget_type$(STR$(ebox)) = "image" hug_widget_font(STR$(ebox)) = image hug_widget_focus(STR$(ebox)) = image
WIDGET = scrolled
IF HUG_WIDGET_SHOW THEN gtk_widget_show_all(scrolled)
RETURN scrolled END FUNCTION '===================================================================== SUB LoadPage(Page$) LOCAL ts,te ' hard coded for now no bit to re ts=TIMER SYSTEM ( "firefox --screenshot https://www.basic-converter.org") LOCAL layer, buffer,image,ebox ebox = hug_widget_s_widget(STR$(web)) image = hug_widget_font(STR$(ebox)) gtk_widget_set_size_request(ebox,1000,600) pixbuf = gdk_pixbuf_new_from_file(HOME$ & "/screenshot.png", 0) 'firefox --screenshot https://www.basic-converter.org
gtk_image_set_from_pixbuf (image,pixbuf) g_object_unref(pixbuf) te = TIMER PRINT te-ts END SUB '===================================================================== SUB GetUrl LOCAL url$ url$ = CHOP$(GRAB$(ent)) LoadPage(url$) END SUB '===================================================================== CHANGEDIR (HOME$ & "/")
win = WINDOW("Web View",1500,750) web = WEBVIEW(1500,750) ATTACH(win,web,0,50) ent=ENTRY("https://www.basic-converter.org",500,25) ATTACH(win,ent,3,3) CALLBACK(ent,GetUrl) DISPLAY UPDATED if visit this site with firefox browser Then command line screenshot will fail as in hang Best option Do not use leaving post as a warning as to what can happen , type finger print , and this site has a long long memory
Have Fun + BR Alex
|
|
|
Post by alexfish on Apr 22, 2023 3:26:55 GMT 1
Easy Peasy weasyprint sudo apt install weasyprint Can get Micro WEBVIEW this one will show url bits So can write the chosen url in the ENTRY, click reload can enter return or click reload Status is the bottom weasy is a python script :: tested on ubuntu forum + here , Will it do YouTube 'NO' TODO : Download from url , as in bzips etc weasyprint INCLUDE "hug35.bac"
HUGOPTIONS("NOSCALING")
HOME$= GETENVIRON$("HOME") '======================================================= FUNCTION WEBVIEW(hug_xsize,hug_ysize)
LOCAL view, scrolled,image,ebox
image = gtk_image_new() PRINT image ebox = gtk_event_box_new() scrolled = gtk_scrolled_window_new(0, 0) gtk_scrolled_window_set_policy(scrolled, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC) gtk_scrolled_window_set_shadow_type(scrolled, GTK_SHADOW_ETCHED_OUT) gtk_container_add(scrolled, image)
IF HUG_WIDGET_SHOW THEN gtk_widget_show_all(scrolled) hug_widget_xsize(STR$(scrolled)) = hug_xsize hug_widget_ysize(STR$(scrolled)) = hug_ysize
hug_widget_signal(STR$(ebox)) = 4 hug_widget_s_widget(STR$(scrolled))=ebox hug_widget_type$(STR$(ebox)) = "image" hug_widget_font(STR$(ebox)) = image hug_widget_focus(STR$(ebox)) = image
RETURN scrolled
END FUNCTION '======================================================= SUB Load_Url(long hug_widget) url$= CHOP$(GRAB$(hug_widget)) IF INSTR(url$,"http") AND INSTR(url$,"://") THEN '=================================================== LOCAL layer, buffer,image,ebox
ebox = hug_widget_s_widget(STR$(web)) image = hug_widget_font(STR$(ebox))
cmd$ = "weasyprint -p -r 66 -q -f png" & CHR$(32) & url$ & CHR$(32) & HOME$ & "/test8.png" TEXT(ent2,"Status Loading") SYNC SYSTEM (cmd$) '====================================================== IF FILEEXISTS(HOME$ & "/test8.png") THEN
pixbuf = gdk_pixbuf_new_from_file(HOME$ & "/test8.png", 0) gtk_image_set_from_pixbuf (image,pixbuf) TEXT(ent2,"Status Ready") ELSE TEXT(ent2,"Status ERROR Get Fail") END IF '======================================================= ELSE TEXT(ent2,"Status ERROR Not URL") END IF
END SUB '======================================================= SUB RELOAD() Load_Url(ent) END SUB '======================================================= CHANGEDIR (HOME$ & "/") '======================================================= win = WINDOW("Web View",576,500) web = WEBVIEW(600,485) ATTACH(win,web,0,35) ent = ENTRY("https://www.basic-converter.org",500,25) ATTACH(win,ent,0,3) CALLBACK(ent,Load_Url) but=BUTTON("reload",70,20) ATTACH(win,but,500,3) CALLBACK(but,RELOAD) ent2= ENTRY("status",596,20) ATTACH(win,ent2,3,560-37) DISPLAY '======================================================= smallest can get for readability weasyprint -p -r 66 the -r is pixel per cm this picky is 66 WebView 600x584Ideal for 1280x600 screens down to 7" inch Attachments:
|
|
|
Post by alexfish on Apr 22, 2023 18:58:31 GMT 1
And something did happenComing very Soon Requires weasyprintin the terminal sudo apt install weasyprint Picky Second picky the Window FoldedAttachments:
|
|
|
Post by alexfish on Apr 23, 2023 10:55:02 GMT 1
WINDOW RESIZE oddity hug window resize FALSE gtk_window_set_resizable(win, 0) layer = gtk_fixed_new()
*/
INCLUDE "hug35.bac" HOME$= GETENVIRON$("HOME") LOCAL TOG =1
SUB What TOG = NOT(TOG) IF TOG THEN SHOW(but4) ELSE HIDE(but4) END IF END SUB 'Task Read how to get windsize win = WINDOW("Resize Me",500, 400)
but = BUTTON("Resize", 100, 20) CALLBACK(but,What) ATTACH(win,but,3,3)
but2 = BUTTON("test 2", 100, 20)
ATTACH(win, but2, 106, 3) FONT(but2, "Sans Mono 12px")
but3 = BUTTON("test 3", 100, 20)
ATTACH(win, but3, 209, 3) FONT(but3, "Sans Mono 6px")
but4 = BUTTON("WoW", 100, 20)
ATTACH(win, but4, 800, 600)
but5 = BUTTON("OK", 100, 20)
ATTACH(win, but5, -50, 40)
DISPLAY Hence the Above Window Resizes IN HUG3.5 Can put transparent bits in :: paned windows without the Pain Plus More :: button bar, menu'sh bar Have Fun + BR Alex
|
|