Print preview in webgadget or webviewgadget

Just starting out? Need help? Post your questions and find answers here.
Mesa
Enthusiast
Enthusiast
Posts: 433
Joined: Fri Feb 24, 2012 10:19 am

Print preview in webgadget or webviewgadget

Post by Mesa »

I'm searching a code to launch the print preview requester of a web gadget or a webviewgadget, only for Linux and MacOS.
Do you have one ?

Thanks

M.

Code: Select all

EnableExplicit

CompilerSelect #PB_Compiler_OS
    
  CompilerCase #PB_OS_Windows
    Define IWebBrowser2.IWebBrowser2
    #OLECMDID_PRINTPREVIEW=7
    Enumeration 0
      #OLECMDEXECOPT_DODEFAULT
      #OLECMDEXECOPT_PROMPTUSER
      #OLECMDEXECOPT_DONTPROMPTUSER
      #OLECMDEXECOPT_SHOWHELP
    EndEnumeration
    Procedure PrintPreview()
      If GadgetType(1)=#PB_GadgetType_Web           
        Protected IWebBrowser2.IWebBrowser2 = GetWindowLongPtr_(GadgetID(1), #GWL_USERDATA)
        IWebBrowser2\ExecWB(#OLECMDID_PRINTPREVIEW, #OLECMDEXECOPT_DONTPROMPTUSER, 0, 0)
      EndIf
      
    EndProcedure
    
  CompilerCase #PB_OS_Linux
    ;==== can i send a CTL+P or use a ICoreWebView2Controller?
  CompilerCase #PB_OS_MacOS
    ;==== ? 
CompilerEndSelect

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(1, 0, 40, 500, 360, "https://www.google.com")
  ;   WebViewGadget(1, 0, 40, 500, 360, #PB_WebView_Debug )
  ;   SetGadgetText(1, "https://www.google.com")
  ;   Controller.ICoreWebView2Controller = GetGadgetAttribute(1, #PB_WebView_ICoreController)
  ButtonGadget(2, 10, 10, 480, 20, "Display print preview", 0)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 2
            PrintPreview() 
        EndSelect
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf