Merge branch 'master' into blender2.8
authorCampbell Barton <ideasman42@gmail.com>
Sat, 30 Jun 2018 08:56:12 +0000 (10:56 +0200)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 30 Jun 2018 08:56:12 +0000 (10:56 +0200)
1  2 
source/blender/editors/include/UI_interface.h
source/blender/editors/interface/CMakeLists.txt
source/blender/editors/interface/interface.c
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_intern.h

index b00717665a9a371ec3b23b78c5095949b364d4c1,c87334f4bac29754a57deecb65ee0b1a84a6b7a4..7540e6ed602107f5498874b6be29ba3d6376d255
@@@ -533,10 -502,7 +538,8 @@@ void    UI_block_direction_set(uiBlock 
  void    UI_block_order_flip(uiBlock *block);
  void    UI_block_flag_enable(uiBlock *block, int flag);
  void    UI_block_flag_disable(uiBlock *block, int flag);
 +void    UI_block_translate(uiBlock *block, int x, int y);
  
- bool    UI_block_is_empty(const uiBlock *block);
  int     UI_but_return_value_get(uiBut *but);
  
  void    UI_but_drag_set_id(uiBut *but, struct ID *id);
index 882db88879dcdcb0dd41aa0103200d0ee5d50293,2c984d64266cd0869868802a05546da2f4e07e86..ee18f956cac9fbae37b627a6aec2eec1b6b97fde
@@@ -57,11 -55,10 +57,12 @@@ set(SR
        interface_layout.c
        interface_ops.c
        interface_panel.c
+       interface_query.c
        interface_region_color_picker.c
 +      interface_region_hud.c
        interface_region_menu_pie.c
        interface_region_menu_popup.c
 +      interface_region_popover.c
        interface_region_popup.c
        interface_region_search.c
        interface_region_tooltip.c
index 5edc66300ce6976fdf89778d94ea68b04b7318a9,7d059137a00d78661e8a75b0a9dcf27185c6ddbe..893700376b07266f4c5b7527c4dad0c7c665336e
@@@ -467,46 -471,6 +467,16 @@@ void ui_pan_to_scroll(const wmEvent *ev
        }
  }
  
- bool ui_but_is_editable(const uiBut *but)
- {
-       return !ELEM(but->type,
-                    UI_BTYPE_LABEL, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE,
-                    UI_BTYPE_ROUNDBOX, UI_BTYPE_LISTBOX, UI_BTYPE_PROGRESS_BAR);
- }
- bool ui_but_is_editable_as_text(const uiBut *but)
- {
-       return  ELEM(but->type,
-                    UI_BTYPE_TEXT, UI_BTYPE_NUM, UI_BTYPE_NUM_SLIDER,
-                    UI_BTYPE_SEARCH_MENU);
- }
- bool ui_but_is_toggle(const uiBut *but)
- {
-       return ELEM(
-               but->type,
-               UI_BTYPE_BUT_TOGGLE,
-               UI_BTYPE_TOGGLE,
-               UI_BTYPE_ICON_TOGGLE,
-               UI_BTYPE_ICON_TOGGLE_N,
-               UI_BTYPE_TOGGLE_N,
-               UI_BTYPE_CHECKBOX,
-               UI_BTYPE_CHECKBOX_N,
-               UI_BTYPE_ROW
-       );
- }
 +#ifdef USE_UI_POPOVER_ONCE
 +bool ui_but_is_popover_once_compat(const uiBut *but)
 +{
 +      return (
 +              (but->type == UI_BTYPE_BUT) ||
 +              ui_but_is_toggle(but)
 +      );
 +}
 +#endif
 +
  static uiBut *ui_but_prev(uiBut *but)
  {
        while (but->prev) {
index 2f2c77abc9ca7bd25b34c66f9be1edc171a1cb89,cc86530871d08403e9b9c7be8639e87b68613054..04e9e2b18b46b6b46482a8e6f5a30dfe4da49bed
@@@ -442,10 -449,10 +442,8 @@@ typedef struct uiSafetyRct 
  
  /* interface.c */
  
 -extern void ui_linkline_remove(uiLinkLine *line, uiBut *but);
 -
  void ui_fontscale(short *points, float aspect);
  
- extern bool ui_block_is_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
- extern bool ui_block_is_pie_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
  extern void ui_block_to_window_fl(const struct ARegion *ar, uiBlock *block, float *x, float *y);
  extern void ui_block_to_window(const struct ARegion *ar, uiBlock *block, int *x, int *y);
  extern void ui_block_to_window_rctf(const struct ARegion *ar, uiBlock *block, rctf *rct_dst, const rctf *rct_src);
@@@ -715,56 -690,20 +709,56 @@@ struct wmIMEData *ui_but_ime_data_get(u
  #endif
  
  /* interface_widgets.c */
 -void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
 -void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy, float rad, bool use_alpha);
 +
 +/* Widget shader parameters, must match the shader layout. */
 +typedef struct uiWidgetBaseParameters {
 +      rctf recti, rect;
 +      float radi, rad;
 +      float facxi, facyi;
 +      float round_corners[4];
 +      float color_inner1[4], color_inner2[4];
 +      float color_outline[4], color_emboss[4];
 +      float color_tria[4];
 +      float tria1_center[2], tria2_center[2];
 +      float tria1_size, tria2_size;
 +      float shade_dir;
 +      /* We pack alpha check and discard factor in alpha_discard.
 +       * If the value is negative then we do alpha check.
 +       * The absolute value itself is the discard factor.
 +       * Initialize value to 1.0.f if you don't want discard */
 +      float alpha_discard;
 +} uiWidgetBaseParameters;
 +
 +enum {
 +      ROUNDBOX_TRIA_NONE = 0,
 +      ROUNDBOX_TRIA_ARROWS,
 +      ROUNDBOX_TRIA_SCROLL,
 +      ROUNDBOX_TRIA_MENU,
 +      ROUNDBOX_TRIA_CHECK,
 +      ROUNDBOX_TRIA_HOLD_ACTION_ARROW,
 +
 +      ROUNDBOX_TRIA_MAX, /* don't use */
 +};
 +
 +struct Gwn_Batch *ui_batch_roundbox_get(bool filled, bool antialiased);
 +struct Gwn_Batch *ui_batch_roundbox_widget_get(int tria);
 +struct Gwn_Batch *ui_batch_roundbox_shadow_get(void);
 +
 +void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy,
 +                           float rad, bool use_alpha, const float color[4]);
  void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect);
 +void ui_draw_popover_back(ARegion *ar, struct uiStyle *style, uiBlock *block, rcti *rect);
  void ui_draw_pie_center(uiBlock *block);
- uiWidgetColors *ui_tooltip_get_theme(void);
+ struct uiWidgetColors *ui_tooltip_get_theme(void);
 +
 +void ui_draw_widget_back_color(
 +        uiWidgetTypeEnum type, bool use_shadow, const rcti *rect,
 +        const float color[4]);
 +void ui_draw_widget_back(
 +        uiWidgetTypeEnum type, bool use_shadow, const rcti *rect);
- void ui_draw_tooltip_background(uiStyle *UNUSED(style), uiBlock *block, rcti *rect);
+ void ui_draw_tooltip_background(struct uiStyle *UNUSED(style), uiBlock *block, rcti *rect);
 -void ui_draw_search_back(struct uiStyle *style, uiBlock *block, rcti *rect);
 -bool ui_link_bezier_points(const rcti *rect, float coord_array[][2], int resol);
 -void ui_draw_link_bezier(const rcti *rect);
  
  extern void ui_draw_but(const struct bContext *C, ARegion *ar, struct uiStyle *style, uiBut *but, rcti *rect);
 -/* theme color init */
 -struct ThemeUI;
 -void ui_widget_color_init(struct ThemeUI *tui);
  
  void ui_draw_menu_item(struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state, bool use_sep);
  void ui_draw_preview_item(struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state);
@@@ -811,9 -745,14 +805,18 @@@ bool ui_but_anim_expression_set(uiBut *
  bool ui_but_anim_expression_create(uiBut *but, const char *str);
  void ui_but_anim_autokey(struct bContext *C, uiBut *but, struct Scene *scene, float cfra);
  
 +void ui_but_anim_decorate_cb(struct bContext *C, void *arg_but, void *arg_dummy);
 +void ui_but_anim_decorate_update_from_flag(uiBut *but);
 +
+ /* interface_query.c */
+ bool ui_but_is_editable(const uiBut *but);
+ bool ui_but_is_editable_as_text(const uiBut *but);
+ bool ui_but_is_toggle(const uiBut *but);
++bool ui_but_is_popover_once_compat(const uiBut *but);
+ extern bool ui_block_is_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
+ extern bool ui_block_is_pie_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
  /* interface_context_menu.c */
  bool ui_popup_context_menu_for_button(struct bContext *C, uiBut *but);
  void ui_popup_context_menu_for_panel(struct bContext *C, struct ARegion *ar, struct Panel *pa);