Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-08-15 13:42:06 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-15 13:42:06 +0400
commit97859e870902305642783a705e1b12f19a2aaf76 (patch)
tree1ed07607300fd60bd1ed9af9930ad7cb933e7b2d /source/blender/windowmanager/intern/wm_jobs.c
parentb174610a8461348a82454f9050bc0dee7d9ce926 (diff)
add wm job types they are not used yet, so this just defines them for new jobs add add argument to search by job type.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_jobs.c')
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index ce0c7e13454..feca042d2a6 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -114,7 +114,7 @@ struct wmJob {
/* internal */
void *owner;
int flag;
- short suspended, running, ready, do_update, stop;
+ short suspended, running, ready, do_update, stop, job_type;
float progress;
/* for display in header, identification */
@@ -153,7 +153,7 @@ static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const char *name)
/* returns current or adds new job, but doesnt run it */
/* every owner only gets a single job, adding a new one will stop running stop and
* when stopped it starts the new one */
-wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag)
+wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
{
wmJob *steve = wm_job_find(wm, owner, name);
@@ -164,6 +164,7 @@ wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *
steve->win = win;
steve->owner = owner;
steve->flag = flag;
+ steve->job_type = job_type;
BLI_strncpy(steve->name, name, sizeof(steve->name));
}
@@ -171,17 +172,22 @@ wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *
}
/* returns true if job runs, for UI (progress) indicators */
-int WM_jobs_test(wmWindowManager *wm, void *owner)
+int WM_jobs_test(wmWindowManager *wm, void *owner, int job_type)
{
wmJob *steve;
/* job can be running or about to run (suspended) */
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner)
- if (steve->running || steve->suspended)
- return 1;
+ for (steve = wm->jobs.first; steve; steve = steve->next) {
+ if (steve->owner == owner) {
+ if (job_type == WM_JOB_TYPE_ANY || (steve->job_type == job_type)) {
+ if (steve->running || steve->suspended) {
+ return TRUE;
+ }
+ }
+ }
+ }
- return 0;
+ return FALSE;
}
float WM_jobs_progress(wmWindowManager *wm, void *owner)