xref: /trunk/main/vcl/aqua/source/app/salnstimer.mm (revision 79aad27f)
1*323de322SAndrew Rist/**************************************************************
2cdf0e10cSrcweir *
3*323de322SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*323de322SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*323de322SAndrew Rist * distributed with this work for additional information
6*323de322SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*323de322SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*323de322SAndrew Rist * "License"); you may not use this file except in compliance
9*323de322SAndrew Rist * with the License.  You may obtain a copy of the License at
10*323de322SAndrew Rist *
11*323de322SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*323de322SAndrew Rist *
13*323de322SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*323de322SAndrew Rist * software distributed under the License is distributed on an
15*323de322SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*323de322SAndrew Rist * KIND, either express or implied.  See the License for the
17*323de322SAndrew Rist * specific language governing permissions and limitations
18*323de322SAndrew Rist * under the License.
19*323de322SAndrew Rist *
20*323de322SAndrew Rist *************************************************************/
21*323de322SAndrew Rist
22*323de322SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir// MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir#include "precompiled_vcl.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir#include "aqua/saltimer.h"
28cdf0e10cSrcweir#include "aqua/salnstimer.h"
29cdf0e10cSrcweir#include "aqua/salinst.h"
30cdf0e10cSrcweir#include "aqua/saldata.hxx"
31cdf0e10cSrcweir
32cdf0e10cSrcweir#include "svdata.hxx"
33cdf0e10cSrcweir
34cdf0e10cSrcweir@implementation TimerCallbackCaller
35cdf0e10cSrcweir-(void)timerElapsed:(NSTimer*)pTimer
36cdf0e10cSrcweir{
37cdf0e10cSrcweir    (void)pTimer;
38cdf0e10cSrcweir    ImplSVData* pSVData = ImplGetSVData();
39cdf0e10cSrcweir    if( AquaSalTimer::bDispatchTimer )
40cdf0e10cSrcweir    {
41cdf0e10cSrcweir        if( pSVData->mpSalTimer )
42cdf0e10cSrcweir        {
43cdf0e10cSrcweir            YIELD_GUARD;
44cdf0e10cSrcweir            pSVData->mpSalTimer->CallCallback();
45cdf0e10cSrcweir
46cdf0e10cSrcweir            // NSTimer does not end nextEventMatchingMask of NSApplication
47cdf0e10cSrcweir            // so we need to wakeup a waiting Yield to inform it something happened
48cdf0e10cSrcweir            GetSalData()->mpFirstInstance->wakeupYield();
49cdf0e10cSrcweir        }
50cdf0e10cSrcweir    }
51cdf0e10cSrcweir}
52cdf0e10cSrcweir@end
53cdf0e10cSrcweir
54