[Bf-blender-cvs] [bbd0f6d] pie-menus: Nice little widget indicator influenced from pie menu add-on

Antony Riakiotakis noreply at git.blender.org
Mon May 26 23:31:30 CEST 2014


Commit: bbd0f6d37f7e600cf7cbf94a8119a31dd7a54595
Author: Antony Riakiotakis
Date:   Tue May 27 00:31:04 2014 +0300
https://developer.blender.org/rBbbd0f6d37f7e600cf7cbf94a8119a31dd7a54595

Nice little widget indicator influenced from pie menu add-on

===================================================================

M	source/blender/editors/interface/interface_handlers.c
M	source/blender/editors/interface/interface_widgets.c

===================================================================

diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 9205858..d707758 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -6379,7 +6379,7 @@ static bool ui_mouse_inside_region(ARegion *ar, int x, int y)
 	return true;
 }
 
-static void ui_block_calculate_pie_segment(const float mx, const float my, float seg2[2], const uiBlock *block)
+static void ui_block_calculate_pie_segment(const float mx, const float my, float seg2[2], uiBlock *block)
 {
 	float seg1[2];
 
@@ -6389,6 +6389,8 @@ static void ui_block_calculate_pie_segment(const float mx, const float my, float
 	seg2[0] = mx - seg1[0];
 	seg2[1] = my - seg1[1];
 	normalize_v2(seg2);
+
+	copy_v2_v2(block->pie_dir, seg2);
 }
 
 
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 03fde12..7432fa5 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -3676,11 +3676,21 @@ void ui_draw_pie_center(uiBlock *block)
 	float cy = BLI_rctf_cent_y(&block->rect);
 
 	float pie_radius_internal = block->pie_center_width;
-	glColor4ubv(btheme->tui.wcol_menu_back.inner);
+
 	glPushMatrix();
 	glTranslatef(cx, cy, 0.0);
+
+	glColor4ub(btheme->tui.wcol_menu_back.inner[0], btheme->tui.wcol_menu_back.inner[1], btheme->tui.wcol_menu_back.inner[2], btheme->tui.wcol_menu_back.inner[3]);
 	glEnable(GL_BLEND);
 	glutil_draw_filled_arc(0.0, (float)(M_PI * 2.0), pie_radius_internal, 40);
+
+	glColor4ub(255, 255, 0, btheme->tui.wcol_menu_back.inner[3]);
+	glBegin(GL_TRIANGLES);
+	glVertex2f(block->pie_dir[0] * pie_radius_internal + block->pie_dir[1] * 5.0, block->pie_dir[1] * pie_radius_internal - block->pie_dir[0] * 5.0);
+	glVertex2f(block->pie_dir[0] * pie_radius_internal - block->pie_dir[1] * 5.0, block->pie_dir[1] * pie_radius_internal + block->pie_dir[0] * 5.0);
+	glVertex2f(block->pie_dir[0] * (pie_radius_internal + 10.0f), block->pie_dir[1] * (pie_radius_internal + 10.0f));
+	glEnd();
+
 	glDisable(GL_BLEND);
 	glPopMatrix();
 }




More information about the Bf-blender-cvs mailing list