1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17/**
18 * @author Pavel Dolgov
19 * @version $Revision$
20 */
21package java.awt;
22
23/**
24 *
25 * The context for nested event loop. It can be dialog, popup menu etc.
26 */
27class ModalContext {
28
29    private boolean running = false;
30
31    private final Toolkit toolkit;
32
33    ModalContext() {
34        toolkit = Toolkit.getDefaultToolkit();
35    }
36
37    /**
38     * Set up and run modal loop in this context
39     *
40     */
41    void runModalLoop() {
42        running = true;
43        toolkit.dispatchThread.runModalLoop(this);
44    }
45
46    /**
47     * Leave the modal loop running in this context
48     * This method doesn't stops the loop immediately,
49     * it just sets the flag that says the modal loop to stop
50     *
51     */
52    void endModalLoop() {
53        running = false;
54    }
55
56    /**
57     *
58     * @return modal loop is currently running in this context
59     */
60    boolean isModalLoopRunning() {
61        return running;
62    }
63
64}
65