New Release - Events

PDF-XChange Viewer SDK for Developer's
(ActiveX and Simple DLL Versions)

Moderators: TrackerSupp-Daniel, Tracker Support, Vasyl-Tracker Dev Team, Chris - Tracker Supp, Sean - Tracker, Ivan - Tracker Software, Tracker Supp-Stefan

Post Reply
HJBrown
User
Posts: 38
Joined: Fri Feb 06, 2009 12:55 pm

New Release - Events

Post by HJBrown »

Thank you for the new release.

We inquired a few months ago about adding MOUSE EVENTS support. We were told (but not promised of course) that you would perhaps add this to this release. Has this been delayed? We have been waiting a long time for this feature.

Also, will we be able to add custom buttons to the toolbars anytime soon?
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

No in this build there is no such functionality.
By the way – when you talking about Mouse Events, what exactly events and info from them you want to receive in your application?

P.S. If it’s just MouseMove, Mouse Down, Mouse Up etc. then I may suggest you to use LowLeveled Mouse Hook.
HJBrown
User
Posts: 38
Joined: Fri Feb 06, 2009 12:55 pm

Re: New Release - Events

Post by HJBrown »

We want to be able to get the mouse position on the page during a mouse down and mouse-up event. I do not think that this is available in the low level functions. This is very standard for any type of viewer.
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

So you need mouse events which fired when mouse is over the document page? Just for interest, how do you want to use this in your program?
HJBrown
User
Posts: 38
Joined: Fri Feb 06, 2009 12:55 pm

Re: New Release - Events

Post by HJBrown »

There are several things that we can only do with mouse events and positioning. For example, we want to add our own linking tool so that we can draw a rectangle on a page that will trigger our own dialog box to appear so that the user can fill in certain information. It will then create a link at that location with the information that the user supplied.

Can you tell me if mouse events are under development? If they are not then we will need to make other arrangements for our product. If you look at some of my earlier requests from two months ago, we were told that this was under development.
User avatar
Vasyl-Tracker Dev Team
Site Admin
Posts: 2353
Joined: Thu Jun 30, 2005 4:11 pm
Location: Canada

Re: New Release - Events

Post by Vasyl-Tracker Dev Team »

Yes, we are indeed working on developing mouse events. We are planning to support:

- Mouse down event (with info of which button was triggered)
- Mouse up event
- Mouse move event
- Cursor coordinates relative to screen (+feature for obtaining page and page-coordinates from screen coordinates).
- Name of Viewer UI element (such as "Document", "Thumbnails", "Pages") under mouse pointer.

Please wait for the technical build with these features, special for you :wink:.

This build will be available tomorrow..
Vasyl Yaremyn
Tracker Software Products
Project Developer

Please archive any files posted to a ZIP, 7z or RAR file or they will be removed and not posted.
HJBrown
User
Posts: 38
Joined: Fri Feb 06, 2009 12:55 pm

Re: New Release - Events

Post by HJBrown »

That is great news. Will the new build be posted on the Download page?
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

I don't know what language you are using, so I will provide some samples for mouse events on Delphi.

At first you need to enable receive of mouse events. To do this you can set "Notifications.Mouse.Filter" property to "All" (-1). If you want to disable mouse events then you need to set "Notifications.Mouse.Filter" property to "None" (0).

Code: Select all

CoPDFXCview1.SetProperty('Notifications.Mouse.Filter', 'All',0);
CoPDFXCview1.SetProperty('Notifications.Mouse.Filter', 'None',0);
All mouse events can be recieved in IPDFXCviewEvents::OnEvent. Here is Delphi representation:

Code: Select all

procedure TForm1.CoPDFXCview1Event(ASender: TObject; Type_: Integer; const Name: WideString; 
	const DataIn: OleVariant; out DataOut: OleVariant; Flags: Integer);
var
  P: TPoint;
  msg:integer;
  str:string;
  vDataIn,vDataOut:OleVariant;
  spMouse: IPDFXCsmartp;
  nPage:integer;
  nDocID:integer;
  vArr:array of OLEVariant; // SAFEARRAY
  dx,dy:double;
begin

  if type_ = PXCVA_OnNamedNotify then
  begin
    //
    if Name = 'Notifications.Mouse' then // Receive mouse event
    begin
      //
      CoPDFXCview1.DoVerb('Notifications.Mouse', '.SP', vDataIn, vDataOut, 0); // Get smart pointer for shorter property path
      spMouse:=IDispatch(vDataOut) as IPDFXCsmartp;

      spMouse.GetProperty('x', vDataOut, 0);
      p.x:=vDataOut;
      spMouse.GetProperty('y', vDataOut, 0);
      p.y:=vDataOut;
      spMouse.GetProperty('msg', vDataOut, 0);
      msg:=vDataOut;

      spMouse.GetProperty('TargetName', vDataOut, 0); // name of UI component under mouse cursor
      str:=vDataOut;
      Memo1.Lines.add('msg: '+ inttostr(msg)+', x:'+inttostr(p.x)+', y:'+inttostr(p.y)+', TargetName: '+str);
      
      if (msg=WM_LBUTTONDOWN) and (str='Pages') then
      begin
      	//spMouse.SetProperty('Skip', 1, 0); // If "Skip" property is set to true (1) then this mouse event will be ignored in Viewer
      end;
      
      spMouse.GetProperty('Page', vDataOut, 0); // Get on what page is cursor
      nPage := vDataOut;
      if nPage >=0 then
      begin
        //
        spMouse.GetProperty('Document', vDataOut, 0); // Get on what document is cursor
        nDocID:=vDataOut;

        SetLength(vArr,2);
        vArr[0]:=p.x;
        vArr[1]:=p.y;
        vDataIn := vArr;

        str:='Pages[' + inttostr(nPage)+']';
        try
        	CoPDFXCview1.DoDocumentVerb(nDocID, str, 'TranslateScreenPoint', vDataIn, vDataOut, 0); // Convert screen coordinates to page coordinates
        except
          exit;
        end;
        vArr:=vDataOut;
        dx:=vArr[0];
        dy:=vArr[1];
        Memo1.Lines.add('Page: '+ inttostr(nPage)+', dx:'+floattostr(dx)+', dy:'+floattostr(dy));
      end;
    end;   
  end;
end;
In near future we will provide full samples for this functionality on different languages.
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

You can download technical buid of PDF-XChange Viewer ActiveX Control from next link:
http://www.docu-track.co.uk/PDFXCview.tech_build.zip
HTH
docu-track99
User
Posts: 518
Joined: Thu Dec 06, 2007 8:13 pm

Help with how to call this please

Post by docu-track99 »

Call tPdf1.SetProperty("General.DenyOpenDocumentsWhenDrop", 1) '2 arguments
Call tPdf1.SetProperty("Commands[""ShowCmdCustomizeDialog""].State", "Offline", 0) '3 arguments

These both work in vb6 ^^^

But this doesn't work VVV

Call tPdf1.SetProperty("Notifications.Mouse.Filter", "All", 0)

Any thoughts on what we are doing wrong?
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

So you have problems only with SetProperty("Notifications.Mouse.Filter", "All", 0) ?
Have you download and update your PDF-XChange Viewer with latest technical build?
Last edited by Corwin - Tracker Sup on Mon Jun 15, 2009 3:59 pm, edited 1 time in total.
docu-track99
User
Posts: 518
Joined: Thu Dec 06, 2007 8:13 pm

Re: New Release - Events

Post by docu-track99 »

yes
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

Just checked it on vb6. All works fine for me.
Please, replace your PDFXChange Viewer files by files from PDFXCview.tech_build.zip archive and then register it's components by runing next commands:
1) PDFXCView.exe /RegServer
2) regsvr32 PDFXCviewAx.dll
docu-track99
User
Posts: 518
Joined: Thu Dec 06, 2007 8:13 pm

Re: New Release - Events

Post by docu-track99 »

ok, working now - thanks (I only overwrote the dll initially)
docu-track99
User
Posts: 518
Joined: Thu Dec 06, 2007 8:13 pm

Re: New Release - Events

Post by docu-track99 »

Any idea how to get IPDFXCsmartp, mouse event properties (x,y etc) in vb6.
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

Here is sample for mouse events on VB6.
Attachments
VB6_MouseEvents.zip
(8.93 KiB) Downloaded 176 times
docu-track99
User
Posts: 518
Joined: Thu Dec 06, 2007 8:13 pm

Re: New Release - Events

Post by docu-track99 »

Thanks, very much. You rock.
User avatar
John - Tracker Supp
Site Admin
Posts: 5219
Joined: Tue Jun 29, 2004 10:34 am
Location: United Kingdom
Contact:

Re: New Release - Events

Post by John - Tracker Supp »

;)

thanks
If posting files to this forum - you must archive the files to a ZIP, RAR or 7z file or they will not be uploaded - thank you.

Best regards
Tracker Support
http://www.tracker-software.com
miromr
User
Posts: 59
Joined: Sat May 09, 2009 3:05 pm

Re: New Release - Events

Post by miromr »

Hi,
I cannot find samples project in Delphi.Can you give me an advice where I find it?

ThankMiro
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

Hello Miro.
Here is the sample for mouse events and context menu events on Delphi.
Attachments
Delphi_MouseEvents.zip
(237.15 KiB) Downloaded 170 times
miromr
User
Posts: 59
Joined: Sat May 09, 2009 3:05 pm

Re: New Release - Events

Post by miromr »

Thank you very much

Miro
User avatar
John - Tracker Supp
Site Admin
Posts: 5219
Joined: Tue Jun 29, 2004 10:34 am
Location: United Kingdom
Contact:

Re: New Release - Events

Post by John - Tracker Supp »

Pleasure :)
If posting files to this forum - you must archive the files to a ZIP, RAR or 7z file or they will not be uploaded - thank you.

Best regards
Tracker Support
http://www.tracker-software.com
RudolfErnst
User
Posts: 73
Joined: Tue Oct 14, 2008 2:14 pm
Location: Munich, Germany

Re: New Release - Events

Post by RudolfErnst »

Hello,

we have written a big application using Eclipse RCP and the PDFXChange ActiveX plugin over the last 3 years. Looks great but one point is missing: tracking mouse events. We solved this using the keyboard as workaround.

I want to be notified about the page and the coordinates when the user clicks into a document with the mouse. I saw your VB and Delphi examples. Does anybody have such an example in Java. My problem is the IPDFXCsmartp, ...

Can somebody translate this code in Java:

try
CoPDFXCview1.DoVerb('Notifications.Mouse', '.SP', vDataIn, vDataOut, 0);
spMouse:=IDispatch(vDataOut) as IPDFXCsmartp;
except
exit;
end;

spMouse.GetProperty('x', vDataOut, 0);
p.x:=vDataOut;
spMouse.GetProperty('y', vDataOut, 0);
p.y:=vDataOut;
spMouse.GetProperty('msg', vDataOut, 0);
msg:=vDataOut;

kind regards
Rudi
Corwin - Tracker Sup
User
Posts: 664
Joined: Tue Nov 14, 2006 12:23 pm

Re: New Release - Events

Post by Corwin - Tracker Sup »

Hi Rudolf,

Actually you don't have to use IPDFXCsmartp to get mouse coordinates.
In Delphi code instead of using

Code: Select all

CoPDFXCview1.DoVerb('Notifications.Mouse', '.SP', vDataIn, vDataOut, 0);
spMouse:=IDispatch(vDataOut) as IPDFXCsmartp;
spMouse.GetProperty('x', vDataOut, 0);
p.x:=vDataOut;
You can use next code

Code: Select all

CoPDFXCview1.GetProperty('Notifications.Mouse.x', vDataOut, 0);
p.x:=vDataOut;
HTH
RudolfErnst
User
Posts: 73
Joined: Tue Oct 14, 2008 2:14 pm
Location: Munich, Germany

Re: New Release - Events

Post by RudolfErnst »

Thank you Corwin,

that works now.
The coordinates seem to be screen coordinates and I need coordinates relative to the ActiveX Control. I think I have to solve this computation outside the ActiveX plugin.

Thank you
Rudi
Post Reply