diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-01-30 15:58:00 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-01-30 15:58:00 +0300 |
commit | 6009523659a7f3c24cf2ffd79429220065d66a19 (patch) | |
tree | f76381f26c39c97385f4f92ac3108591f81236cf /source/blender/editors/space_image | |
parent | 8036342ea8c20ede363d5d3fe5459cc2af58a0f6 (diff) |
2.5: Added simple toolbox menu in image window as a test,
can uses same menus as header now since code doesn't depend
on being in the header anymore.
Diffstat (limited to 'source/blender/editors/space_image')
-rw-r--r-- | source/blender/editors/space_image/image_header.c | 35 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_intern.h | 4 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_ops.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_image/space_image.c | 4 |
4 files changed, 44 insertions, 1 deletions
diff --git a/source/blender/editors/space_image/image_header.c b/source/blender/editors/space_image/image_header.c index 9f1f2fb4f3f..59bc98eac93 100644 --- a/source/blender/editors/space_image/image_header.c +++ b/source/blender/editors/space_image/image_header.c @@ -1117,3 +1117,38 @@ void image_header_buttons(const bContext *C, ARegion *ar) uiDrawBlock(C, block); } +/********************** toolbox operator *********************/ + +static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C); + Object *obedit= CTX_data_edit_object(C); + uiMenuItem *head; + int show_uvedit; + + show_uvedit= get_space_image_show_uvedit(sima, obedit); + + head= uiPupMenuBegin("Toolbox"); + + uiMenuLevel(head, "View", image_viewmenu); + if(show_uvedit) uiMenuLevel(head, "Select", image_selectmenu); + uiMenuLevel(head, "Image", image_imagemenu); + if(show_uvedit) uiMenuLevel(head, "UVs", image_uvsmenu); + + uiPupMenuEnd(C, head); + + return OPERATOR_CANCELLED; +} + +void IMAGE_OT_toolbox(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toolbox"; + ot->idname= "IMAGE_OT_toolbox"; + + /* api callbacks */ + ot->invoke= toolbox_invoke; + ot->poll= space_image_main_area_poll; +} + + diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h index e8552e68020..3f61ec6207a 100644 --- a/source/blender/editors/space_image/image_intern.h +++ b/source/blender/editors/space_image/image_intern.h @@ -57,10 +57,14 @@ int get_space_image_show_uvshadow(struct SpaceImage *sima, struct Object *obedit /* image_header.c */ void image_header_buttons(const struct bContext *C, struct ARegion *ar); +void IMAGE_OT_toolbox(struct wmOperatorType *ot); + /* image_draw.c */ void draw_image_main(struct SpaceImage *sima, struct ARegion *ar, struct Scene *scene); /* image_ops.c */ +int space_image_main_area_poll(struct bContext *C); + void IMAGE_OT_view_all(struct wmOperatorType *ot); void IMAGE_OT_view_pan(struct wmOperatorType *ot); void IMAGE_OT_view_selected(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index c1d212e261f..a4f0abb788f 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -144,7 +144,7 @@ static void sima_zoom_set_factor(SpaceImage *sima, ARegion *ar, float zoomfac) sima_zoom_set(sima, ar, sima->zoom*zoomfac); } -static int space_image_main_area_poll(bContext *C) +int space_image_main_area_poll(bContext *C) { SpaceLink *slink= CTX_wm_space_data(C); ARegion *ar= CTX_wm_region(C); diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 123094bf35a..5ca1a54e40e 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -146,6 +146,8 @@ void image_operatortypes(void) WM_operatortype_append(IMAGE_OT_view_zoom_in); WM_operatortype_append(IMAGE_OT_view_zoom_out); WM_operatortype_append(IMAGE_OT_view_zoom_ratio); + + WM_operatortype_append(IMAGE_OT_toolbox); } void image_keymap(struct wmWindowManager *wm) @@ -169,6 +171,8 @@ void image_keymap(struct wmWindowManager *wm) RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f); RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f); RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f); + + WM_keymap_add_item(keymap, "IMAGE_OT_toolbox", SPACEKEY, KM_PRESS, 0, 0); } static void image_refresh(const bContext *C, ScrArea *sa) |