openshot-audio  0.1.5
juce_ThreadWithProgressWindow.h
Go to the documentation of this file.
1 /*
2  ==============================================================================
3 
4  This file is part of the JUCE library.
5  Copyright (c) 2015 - ROLI Ltd.
6 
7  Permission is granted to use this software under the terms of either:
8  a) the GPL v2 (or any later version)
9  b) the Affero GPL v3
10 
11  Details of these licenses can be found at: www.gnu.org/licenses
12 
13  JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
14  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15  A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 
17  ------------------------------------------------------------------------------
18 
19  To release a closed-source product which uses JUCE, commercial licenses are
20  available: visit www.juce.com for more information.
21 
22  ==============================================================================
23 */
24 
25 #ifndef JUCE_THREADWITHPROGRESSWINDOW_H_INCLUDED
26 #define JUCE_THREADWITHPROGRESSWINDOW_H_INCLUDED
27 
28 
29 //==============================================================================
82  private Timer
83 {
84 public:
85  //==============================================================================
103  ThreadWithProgressWindow (const String& windowTitle,
104  bool hasProgressBar,
105  bool hasCancelButton,
106  int timeOutMsWhenCancelling = 10000,
107  const String& cancelButtonText = String(),
108  Component* componentToCentreAround = nullptr);
109 
112 
113  //==============================================================================
114  #if JUCE_MODAL_LOOPS_PERMITTED
115 
126  bool runThread (int threadPriority = 5);
127  #endif
128 
138  void launchThread (int threadPriority = 5);
139 
145  void setProgress (double newProgress);
146 
148  void setStatusMessage (const String& newStatusMessage);
149 
151  AlertWindow* getAlertWindow() const noexcept { return alertWindow; }
152 
153  //==============================================================================
157  virtual void threadComplete (bool userPressedCancel);
158 
159 private:
160  //==============================================================================
161  void timerCallback() override;
162 
163  double progress;
164  ScopedPointer<AlertWindow> alertWindow;
165  String message;
166  CriticalSection messageLock;
167  const int timeOutMsWhenCancelling;
168  bool wasCancelledByUser;
169 
171 };
172 
173 #endif // JUCE_THREADWITHPROGRESSWINDOW_H_INCLUDED
#define noexcept
Definition: juce_CompilerSupport.h:141
Definition: juce_AlertWindow.h:42
virtual void timerCallback()=0
Definition: juce_String.h:43
#define JUCE_API
Definition: juce_StandardHeader.h:139
Definition: juce_CriticalSection.h:47
Definition: juce_ThreadWithProgressWindow.h:81
Definition: juce_Component.h:33
AlertWindow * getAlertWindow() const noexcept
Definition: juce_ThreadWithProgressWindow.h:151
Definition: juce_Thread.h:47
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
Definition: juce_PlatformDefs.h:198
Definition: juce_Timer.h:52