hedgewars/uTouch.pas
changeset 9380 563ab624522c
parent 9379 1bcfcaf0926e
child 9521 8054d9d775fd
equal deleted inserted replaced
9379:1bcfcaf0926e 9380:563ab624522c
    91 procedure onTouchDown(x, y: Single; pointerId: TSDL_FingerId);
    91 procedure onTouchDown(x, y: Single; pointerId: TSDL_FingerId);
    92 var
    92 var
    93     finger: PTouch_Data;
    93     finger: PTouch_Data;
    94     xr, yr: LongWord;
    94     xr, yr: LongWord;
    95 begin
    95 begin
    96 {$IFDEF USE_TOUCH_INTERFACE}
       
    97 xr:= round(x * cScreenWidth);
    96 xr:= round(x * cScreenWidth);
    98 yr:= round(y * cScreenHeight);
    97 yr:= round(y * cScreenHeight);
    99 
    98 
   100 finger:= addFinger(xr, yr, pointerId);
    99 finger:= addFinger(xr, yr, pointerId);
   101 
   100 
   179             pinchSize := calculateDelta(finger^, getSecondFinger(finger^)^);
   178             pinchSize := calculateDelta(finger^, getSecondFinger(finger^)^);
   180             baseZoomValue := ZoomValue
   179             baseZoomValue := ZoomValue
   181             end;
   180             end;
   182         end;
   181         end;
   183     end;
   182     end;
   184 {$ENDIF}
       
   185 end;
   183 end;
   186 
   184 
   187 procedure onTouchMotion(x, y, dx, dy: Single; pointerId: TSDL_FingerId);
   185 procedure onTouchMotion(x, y, dx, dy: Single; pointerId: TSDL_FingerId);
   188 var
   186 var
   189     finger, secondFinger: PTouch_Data;
   187     finger, secondFinger: PTouch_Data;
   238 var
   236 var
   239     finger: PTouch_Data;
   237     finger: PTouch_Data;
   240     widget: POnScreenWidget;
   238     widget: POnScreenWidget;
   241     xr, yr: LongWord;
   239     xr, yr: LongWord;
   242 begin
   240 begin
   243 {$IFDEF USE_TOUCH_INTERFACE}
       
   244 xr:= round(x * cScreenWidth);
   241 xr:= round(x * cScreenWidth);
   245 yr:= round(y * cScreenHeight);
   242 yr:= round(y * cScreenHeight);
   246 
   243 
   247 finger:= updateFinger(xr, yr, 0, 0, pointerId);
   244 finger:= updateFinger(xr, yr, 0, 0, pointerId);
   248 if finger = nil then
   245 if finger = nil then
   299 
   296 
   300 if targetting then
   297 if targetting then
   301     AddCaption('Press the target button to mark the target', cWhiteColor, capgrpAmmoInfo);
   298     AddCaption('Press the target button to mark the target', cWhiteColor, capgrpAmmoInfo);
   302 
   299 
   303 deleteFinger(pointerId);
   300 deleteFinger(pointerId);
   304 {$ENDIF}
       
   305 end;
   301 end;
   306 
   302 
   307 procedure onTouchDoubleClick(finger: TTouch_Data);
   303 procedure onTouchDoubleClick(finger: TTouch_Data);
   308 begin
   304 begin
   309 finger := finger;//avoid compiler hint
   305 finger := finger;//avoid compiler hint
   310 end;
   306 end;
   311 
   307 
   312 procedure onTouchLongClick(finger: TTouch_Data);
   308 procedure onTouchLongClick(finger: TTouch_Data);
   313 begin
   309 begin
   314 {$IFDEF USE_TOUCH_INTERFACE}
       
   315 if isOnWidget(jumpWidget, finger) then
   310 if isOnWidget(jumpWidget, finger) then
   316     begin
   311     begin
   317     ParseTeamCommand('ljump');
   312     ParseTeamCommand('ljump');
   318     exit;
   313     exit;
   319     end;
   314     end;
   320 
       
   321 {$ENDIF}
       
   322 end;
   315 end;
   323 
   316 
   324 procedure onTouchClick(finger: TTouch_Data);
   317 procedure onTouchClick(finger: TTouch_Data);
   325 begin
   318 begin
   326 //if (RealTicks - timeSinceClick < 300) and (sqrt(sqr(finger.X-xTouchClick) + sqr(finger.Y-yTouchClick)) < 30) then
   319 //if (RealTicks - timeSinceClick < 300) and (sqrt(sqr(finger.X-xTouchClick) + sqr(finger.Y-yTouchClick)) < 30) then
   345     else
   338     else
   346         bShowAmmoMenu:= false;
   339         bShowAmmoMenu:= false;
   347     exit;
   340     exit;
   348     end;
   341     end;
   349 
   342 
   350 {$IFDEF USE_TOUCH_INTERFACE}
       
   351 if isOnCurrentHog(finger) or isOnWidget(AMWidget, finger) then
   343 if isOnCurrentHog(finger) or isOnWidget(AMWidget, finger) then
   352     begin
   344     begin
   353     bShowAmmoMenu := true;
   345     bShowAmmoMenu := true;
   354     exit;
   346     exit;
   355     end;
   347     end;
   357 if isOnWidget(jumpWidget, finger) then
   349 if isOnWidget(jumpWidget, finger) then
   358     begin
   350     begin
   359     ParseTeamCommand('hjump');
   351     ParseTeamCommand('hjump');
   360     exit;
   352     exit;
   361     end;
   353     end;
   362 {$ENDIF}
       
   363 end;
   354 end;
   364 
   355 
   365 function addFinger(x,y: Longword; id: TSDL_FingerId): PTouch_Data;
   356 function addFinger(x,y: Longword; id: TSDL_FingerId): PTouch_Data;
   366 var
   357 var
   367     xCursor, yCursor, index : LongInt;
   358     xCursor, yCursor, index : LongInt;