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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-03-25 23:49:15 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-03-25 23:49:15 +0300
commitd93fd9ffc132cf094dec0d3c65bd0726718c66a5 (patch)
tree6d4206f183f06c37f1d61138ddf777bdfb9a16e5 /source/blender/blenkernel
parent985a4c1e5ed9c00face5bcf69048bf108ff99aaf (diff)
UI:
* Screen level regions created for menus are now a separate CTX_wm_menu in the context, so they don't interfere with existing regions. * Fix context in popup menus to always come from the area and region the popup was opened from. * Removed some unused context stuff: tasks and reports. The places that were using context reports were using it wrong anyway. * Fix F6 closing immediately after editing a button, by making uiBlockSetFlag not clear existing flags anymore. * Don't use ":" in boolean X/Y/Z buttons.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_context.h33
-rw-r--r--source/blender/blenkernel/intern/blender.c2
-rw-r--r--source/blender/blenkernel/intern/context.c87
3 files changed, 18 insertions, 104 deletions
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index dbe5c610688..f08b14c7820 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -77,23 +77,7 @@ typedef int (*bContextDataCallback)(const bContext *C,
bContext *CTX_create(void);
void CTX_free(bContext *C);
-bContext *CTX_copy(const bContext *C, int thread);
-int CTX_thread(const bContext *C);
-
-/* Context Task and Reports */
-
-typedef enum bContextTask {
- CTX_DRAWING = 0,
- CTX_EDITING = 1,
- CTX_EVALUATING = 2,
- CTX_UNDEFINED = 3
-} bContextTask;
-
-bContextTask CTX_task(const bContext *C);
-void CTX_task_set(bContext *C, bContextTask task);
-
-struct ReportList *CTX_reports(const bContext *C);
-void CTX_reports_set(bContext *C, struct ReportList *reports);
+bContext *CTX_copy(const bContext *C);
/* Window Manager Context */
@@ -104,7 +88,7 @@ struct ScrArea *CTX_wm_area(const bContext *C);
struct SpaceLink *CTX_wm_space_data(const bContext *C);
struct ARegion *CTX_wm_region(const bContext *C);
void *CTX_wm_region_data(const bContext *C);
-struct uiBlock *CTX_wm_ui_block(const bContext *C);
+struct ARegion *CTX_wm_menu(const bContext *C);
struct View3D *CTX_wm_view3d(const bContext *C);
struct RegionView3D *CTX_wm_region_view3d(const bContext *C);
@@ -114,9 +98,9 @@ struct SpaceImage *CTX_wm_space_image(const bContext *C);
void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm);
void CTX_wm_window_set(bContext *C, struct wmWindow *win);
void CTX_wm_screen_set(bContext *C, struct bScreen *screen); /* to be removed */
-void CTX_wm_area_set(bContext *C, struct ScrArea *win);
-void CTX_wm_region_set(bContext *C, struct ARegion *win);
-void CTX_wm_ui_block_set(bContext *C, struct uiBlock *block, bContextDataCallback cb);
+void CTX_wm_area_set(bContext *C, struct ScrArea *sa);
+void CTX_wm_region_set(bContext *C, struct ARegion *region);
+void CTX_wm_menu_set(bContext *C, struct ARegion *menu);
/* Data Context
@@ -194,13 +178,6 @@ struct bPoseChannel *CTX_data_active_pchan(const bContext *C);
int CTX_data_selected_pchans(const bContext *C, ListBase *list);
int CTX_data_visible_pchans(const bContext *C, ListBase *list);
-/* Data Evaluation Context */
-
-float CTX_eval_frame(const bContext *C);
-
-int CTX_eval_render_resolution(const bContext *C);
-void CTX_eval_render_resolution_set(bContext *C, int render);
-
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index be64faec3cf..2033250585d 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -348,7 +348,7 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, char *filename)
CTX_data_scene_set(C, bfd->curscreen->scene);
CTX_wm_area_set(C, NULL);
CTX_wm_region_set(C, NULL);
- CTX_wm_ui_block_set(C, NULL, NULL);
+ CTX_wm_menu_set(C, NULL);
}
/* this can happen when active scene was lib-linked, and doesnt exist anymore */
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index df71dd6037a..47622611cb9 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -49,8 +49,6 @@
/* struct */
struct bContext {
- bContextTask task;
- ReportList *reports;
int thread;
/* windowmanager context */
@@ -60,9 +58,7 @@ struct bContext {
struct bScreen *screen;
struct ScrArea *area;
struct ARegion *region;
- struct uiBlock *block;
-
- bContextDataCallback block_cb;
+ struct ARegion *menu;
} wm;
/* data context */
@@ -87,57 +83,21 @@ bContext *CTX_create()
C= MEM_callocN(sizeof(bContext), "bContext");
- C->task= CTX_UNDEFINED;
- C->thread= 0;
-
return C;
}
-bContext *CTX_copy(const bContext *C, int thread)
+bContext *CTX_copy(const bContext *C)
{
- bContext *newC;
-
- if(C->task != CTX_UNDEFINED)
- BKE_report(C->reports, RPT_ERROR_INVALID_CONTEXT, "CTX_copy not allowed for this task");
-
- newC= MEM_dupallocN((void*)C);
- newC->thread= thread;
+ bContext *newC= MEM_dupallocN((void*)C);
return newC;
}
-int CTX_thread(const bContext *C)
-{
- return C->thread;
-}
-
void CTX_free(bContext *C)
{
MEM_freeN(C);
}
-/* context task and reports */
-
-bContextTask CTX_task(const bContext *C)
-{
- return C->task;
-}
-
-void CTX_task_set(bContext *C, bContextTask task)
-{
- C->task= task;
-}
-
-ReportList *CTX_reports(const bContext *C)
-{
- return C->reports;
-}
-
-void CTX_reports_set(bContext *C, ReportList *reports)
-{
- C->reports= reports;
-}
-
/* window manager context */
wmWindowManager *CTX_wm_manager(const bContext *C)
@@ -175,9 +135,9 @@ void *CTX_wm_region_data(const bContext *C)
return (C->wm.region)? C->wm.region->regiondata: NULL;
}
-struct uiBlock *CTX_wm_ui_block(const bContext *C)
+struct ARegion *CTX_wm_menu(const bContext *C)
{
- return C->wm.block;
+ return C->wm.menu;
}
View3D *CTX_wm_view3d(const bContext *C)
@@ -246,10 +206,9 @@ void CTX_wm_region_set(bContext *C, ARegion *region)
C->wm.region= region;
}
-void CTX_wm_ui_block_set(bContext *C, struct uiBlock *block, bContextDataCallback cb)
+void CTX_wm_menu_set(bContext *C, ARegion *menu)
{
- C->wm.block= block;
- C->wm.block_cb= cb;
+ C->wm.menu= menu;
}
/* data context utility functions */
@@ -267,23 +226,19 @@ static int ctx_data_get(bContext *C, const char *member, bContextDataResult *res
/* we check recursion to ensure that we do not get infinite
* loops requesting data from ourselfs in a context callback */
- if(!done && recursion < 1 && C->wm.block) {
+ if(!done && recursion < 1 && C->wm.region) {
C->data.recursion= 1;
- done= C->wm.block_cb(C, member, result);
- }
- if(!done && recursion < 2 && C->wm.region) {
- C->data.recursion= 2;
if(C->wm.region->type && C->wm.region->type->context)
done= C->wm.region->type->context(C, member, result);
}
- if(!done && recursion < 3 && C->wm.area) {
- C->data.recursion= 3;
+ if(!done && recursion < 2 && C->wm.area) {
+ C->data.recursion= 2;
if(C->wm.area->type && C->wm.area->type->context)
done= C->wm.area->type->context(C, member, result);
}
- if(!done && recursion < 4 && C->wm.screen) {
+ if(!done && recursion < 3 && C->wm.screen) {
bContextDataCallback cb= C->wm.screen->context;
- C->data.recursion= 4;
+ C->data.recursion= 3;
if(cb)
done= cb(C, member, result);
}
@@ -562,21 +517,3 @@ int CTX_data_visible_pchans(const bContext *C, ListBase *list)
return ctx_data_collection_get(C, "visible_pchans", list);
}
-
-/* data evaluation */
-
-float CTX_eval_frame(const bContext *C)
-{
- return (C->data.scene)? C->data.scene->r.cfra: 0.0f;
-}
-
-int CTX_eval_render_resolution(const bContext *C)
-{
- return C->eval.render;
-}
-
-void CTX_eval_render_resolution_set(bContext *C, int render)
-{
- C->eval.render= render;
-}
-