Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git "a/C:\\Users\\J\\AppData\\Local\\Temp\\TortoiseGit\\space_outliner-14e423a.000.c" "b/C:\\BlenderSrc\\blender\\source\\blender\\editors\\space_outliner\\space_outliner.c"
- index 0455bbb3f86..94c9e5725b0 100644
- --- "a/C:\\Users\\J\\AppData\\Local\\Temp\\TortoiseGit\\space_outliner-14e423a.000.c"
- +++ "b/C:\\BlenderSrc\\blender\\source\\blender\\editors\\space_outliner\\space_outliner.c"
- @@ -65,6 +65,48 @@
- #include "outliner_intern.h"
- #include "GPU_framebuffer.h"
- + /* ******************** manage regions ********************* */
- +
- +ARegion *outliner_has_buttons_region(ScrArea *sa)
- +{
- + ARegion *ar, *arnew;
- +
- + ar = BKE_area_find_region_type(sa, RGN_TYPE_UI);
- + if (ar) return ar;
- +
- + /* add subdiv level; after main */
- + ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
- +
- + /* is error! */
- + if (ar == NULL) return NULL;
- +
- + arnew = MEM_callocN(sizeof(ARegion), "buttons for outliner");
- +
- + BLI_insertlinkafter(&sa->regionbase, ar, arnew);
- + arnew->regiontype = RGN_TYPE_UI;
- + arnew->alignment = RGN_ALIGN_RIGHT;
- +
- + arnew->flag = 0;// RGN_FLAG_HIDDEN;
- +
- + return arnew;
- +}
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- static void outliner_main_region_init(wmWindowManager *wm, ARegion *ar)
- {
- ListBase *lb;
- @@ -88,6 +130,11 @@ static void outliner_main_region_init(wmWindowManager *wm, ARegion *ar)
- /* don't pass on view2d mask, it's always set with scrollbar space, hide fails */
- WM_event_add_keymap_handler_bb(&ar->handlers, keymap, NULL, &ar->winrct);
- + keymap = WM_keymap_ensure(wm->defaultconf, "Outliner Generic", SPACE_OUTLINER, 0);
- + WM_event_add_keymap_handler(&ar->handlers, keymap);
- +
- +
- +
- /* Add dropboxes */
- lb = WM_dropboxmap_find("Outliner", SPACE_OUTLINER, RGN_TYPE_WINDOW);
- WM_event_add_dropbox_handler(&ar->handlers, lb);
- @@ -256,6 +303,52 @@ static void outliner_main_region_message_subscribe(
- }
- +/* ************************ buttons outliner area region *********************** */
- +
- +/* add handlers, stuff you only do once or on area/region changes */
- +static void outliner_buttons_area_init(wmWindowManager *wm, ARegion *ar)
- +{
- + wmKeyMap *keymap;
- +
- + ED_region_panels_init(wm, ar);
- +
- + keymap = WM_keymap_ensure(wm->defaultconf, "Outliner", SPACE_OUTLINER, 0);
- + WM_event_add_keymap_handler(&ar->handlers, keymap);
- +}
- +
- +static void outliner_buttons_area_draw(const bContext *C, ARegion *ar)
- +{
- + ED_region_panels(C, ar);
- +}
- +
- +static void outliner_region_listener(
- + wmWindow *UNUSED(win), ScrArea *UNUSED(sa), ARegion *ar,
- + wmNotifier *wmn, const Scene *UNUSED(scene))
- +{
- + /* context changes */
- +
- + switch (wmn->category) {
- + case NC_ANIMATION:
- + ED_region_tag_redraw(ar);
- + break;
- + case NC_SCENE:
- + switch (wmn->data) {
- + case ND_OB_ACTIVE:
- + ED_region_tag_redraw(ar);
- + break;
- + }
- + break;
- +
- + default:
- + if (wmn->data == ND_KEYS)
- + ED_region_tag_redraw(ar);
- + break;
- + }
- +
- +}
- +
- +
- +
- /* ************************ header outliner area region *********************** */
- /* add handlers, stuff you only do once or on area/region changes */
- @@ -308,6 +401,14 @@ static SpaceLink *outliner_new(const ScrArea *UNUSED(area), const Scene *UNUSED(
- ar->regiontype = RGN_TYPE_HEADER;
- ar->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
- + /* ui buttons */
- + ar = MEM_callocN(sizeof(ARegion), "buttons region for outliner");
- +
- + BLI_addtail(&soutliner->regionbase, ar);
- + ar->regiontype = RGN_TYPE_UI;
- + ar->alignment = RGN_ALIGN_RIGHT;
- + ar->flag = RGN_FLAG_HIDDEN;
- +
- /* main region */
- ar = MEM_callocN(sizeof(ARegion), "main region for outliner");
- @@ -424,5 +525,22 @@ void ED_spacetype_outliner(void)
- art->listener = outliner_header_region_listener;
- BLI_addhead(&st->regiontypes, art);
- + /* regions: UI buttons */
- + art = MEM_callocN(sizeof(ARegionType), "spacetype outliner buttons region");
- + art->regionid = RGN_TYPE_UI;
- + art->prefsizex = 200;
- + art->keymapflag = ED_KEYMAP_UI;
- + art->listener = outliner_region_listener;
- + art->init = outliner_buttons_area_init;
- + art->draw = outliner_buttons_area_draw;
- +
- + BLI_addhead(&st->regiontypes, art);
- +
- + outliner_buttons_register(art);
- +
- +
- +
- +
- +
- BKE_spacetype_register(st);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement