Advertisement
Guest User

space_outliner.c.patch

a guest
Feb 17th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.20 KB | None | 0 0
  1. 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"
  2. index 0455bbb3f86..94c9e5725b0 100644
  3. --- "a/C:\\Users\\J\\AppData\\Local\\Temp\\TortoiseGit\\space_outliner-14e423a.000.c"
  4. +++ "b/C:\\BlenderSrc\\blender\\source\\blender\\editors\\space_outliner\\space_outliner.c"
  5. @@ -65,6 +65,48 @@
  6.  #include "outliner_intern.h"
  7.  #include "GPU_framebuffer.h"
  8.  
  9. + /* ******************** manage regions ********************* */
  10. +
  11. +ARegion *outliner_has_buttons_region(ScrArea *sa)
  12. +{
  13. +   ARegion *ar, *arnew;
  14. +
  15. +   ar = BKE_area_find_region_type(sa, RGN_TYPE_UI);
  16. +   if (ar) return ar;
  17. +
  18. +   /* add subdiv level; after main */
  19. +   ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
  20. +
  21. +   /* is error! */
  22. +   if (ar == NULL) return NULL;
  23. +
  24. +   arnew = MEM_callocN(sizeof(ARegion), "buttons for outliner");
  25. +
  26. +   BLI_insertlinkafter(&sa->regionbase, ar, arnew);
  27. +   arnew->regiontype = RGN_TYPE_UI;
  28. +   arnew->alignment = RGN_ALIGN_RIGHT;
  29. +
  30. +   arnew->flag = 0;// RGN_FLAG_HIDDEN;
  31. +
  32. +   return arnew;
  33. +}
  34. +
  35. +
  36. +
  37. +
  38. +
  39. +
  40. +
  41. +
  42. +
  43. +
  44. +
  45. +
  46. +
  47. +
  48. +
  49. +
  50. +
  51.  static void outliner_main_region_init(wmWindowManager *wm, ARegion *ar)
  52.  {
  53.     ListBase *lb;
  54. @@ -88,6 +130,11 @@ static void outliner_main_region_init(wmWindowManager *wm, ARegion *ar)
  55.     /* don't pass on view2d mask, it's always set with scrollbar space, hide fails */
  56.     WM_event_add_keymap_handler_bb(&ar->handlers, keymap, NULL, &ar->winrct);
  57.  
  58. +   keymap = WM_keymap_ensure(wm->defaultconf, "Outliner Generic", SPACE_OUTLINER, 0);
  59. +   WM_event_add_keymap_handler(&ar->handlers, keymap);
  60. +
  61. +
  62. +
  63.     /* Add dropboxes */
  64.     lb = WM_dropboxmap_find("Outliner", SPACE_OUTLINER, RGN_TYPE_WINDOW);
  65.     WM_event_add_dropbox_handler(&ar->handlers, lb);
  66. @@ -256,6 +303,52 @@ static void outliner_main_region_message_subscribe(
  67.  }
  68.  
  69.  
  70. +/* ************************ buttons outliner area region *********************** */
  71. +
  72. +/* add handlers, stuff you only do once or on area/region changes */
  73. +static void outliner_buttons_area_init(wmWindowManager *wm, ARegion *ar)
  74. +{
  75. +   wmKeyMap *keymap;
  76. +
  77. +   ED_region_panels_init(wm, ar);
  78. +
  79. +   keymap = WM_keymap_ensure(wm->defaultconf, "Outliner", SPACE_OUTLINER, 0);
  80. +   WM_event_add_keymap_handler(&ar->handlers, keymap);
  81. +}
  82. +
  83. +static void outliner_buttons_area_draw(const bContext *C, ARegion *ar)
  84. +{
  85. +   ED_region_panels(C, ar);
  86. +}
  87. +
  88. +static void outliner_region_listener(
  89. +   wmWindow *UNUSED(win), ScrArea *UNUSED(sa), ARegion *ar,
  90. +   wmNotifier *wmn, const Scene *UNUSED(scene))
  91. +{
  92. +   /* context changes */
  93. +  
  94. +   switch (wmn->category) {
  95. +   case NC_ANIMATION:
  96. +       ED_region_tag_redraw(ar);
  97. +       break;
  98. +   case NC_SCENE:
  99. +       switch (wmn->data) {
  100. +       case ND_OB_ACTIVE:
  101. +           ED_region_tag_redraw(ar);
  102. +           break;
  103. +       }
  104. +       break;
  105. +
  106. +   default:
  107. +       if (wmn->data == ND_KEYS)
  108. +           ED_region_tag_redraw(ar);
  109. +       break;
  110. +   }
  111. +  
  112. +}
  113. +
  114. +
  115. +
  116.  /* ************************ header outliner area region *********************** */
  117.  
  118.  /* add handlers, stuff you only do once or on area/region changes */
  119. @@ -308,6 +401,14 @@ static SpaceLink *outliner_new(const ScrArea *UNUSED(area), const Scene *UNUSED(
  120.     ar->regiontype = RGN_TYPE_HEADER;
  121.     ar->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
  122.  
  123. +   /* ui buttons */
  124. +   ar = MEM_callocN(sizeof(ARegion), "buttons region for outliner");
  125. +
  126. +   BLI_addtail(&soutliner->regionbase, ar);
  127. +   ar->regiontype = RGN_TYPE_UI;
  128. +   ar->alignment = RGN_ALIGN_RIGHT;
  129. +   ar->flag = RGN_FLAG_HIDDEN;
  130. +
  131.     /* main region */
  132.     ar = MEM_callocN(sizeof(ARegion), "main region for outliner");
  133.  
  134. @@ -424,5 +525,22 @@ void ED_spacetype_outliner(void)
  135.     art->listener = outliner_header_region_listener;
  136.     BLI_addhead(&st->regiontypes, art);
  137.  
  138. +   /* regions: UI buttons */
  139. +   art = MEM_callocN(sizeof(ARegionType), "spacetype outliner buttons region");
  140. +   art->regionid = RGN_TYPE_UI;
  141. +   art->prefsizex = 200;
  142. +   art->keymapflag = ED_KEYMAP_UI;
  143. +   art->listener = outliner_region_listener;
  144. +   art->init = outliner_buttons_area_init;
  145. +   art->draw = outliner_buttons_area_draw;
  146. +
  147. +   BLI_addhead(&st->regiontypes, art);
  148. +
  149. +   outliner_buttons_register(art);
  150. +
  151. +
  152. +
  153. +
  154. +
  155.     BKE_spacetype_register(st);
  156.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement