r3234 - trunk/data/qcsrc/menu-div0test/item

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Jan 23 06:58:39 EST 2008


Author: div0
Date: 2008-01-23 06:58:38 -0500 (Wed, 23 Jan 2008)
New Revision: 3234

Modified:
   trunk/data/qcsrc/menu-div0test/item/borderimage.c
   trunk/data/qcsrc/menu-div0test/item/nexposee.c
Log:
Nexposee + Title bar: move title text out of the bar when zoomed out.

Idea: make the title bars smaller now in the skin?


Modified: trunk/data/qcsrc/menu-div0test/item/borderimage.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/borderimage.c	2008-01-23 08:45:18 UTC (rev 3233)
+++ trunk/data/qcsrc/menu-div0test/item/borderimage.c	2008-01-23 11:58:38 UTC (rev 3234)
@@ -8,12 +8,29 @@
 	ATTRIB(BorderImage, borderVec, vector, '0 0 0')
 	ATTRIB(BorderImage, color, vector, '1 1 1')
 	ATTRIB(BorderImage, closeButton, entity, NULL)
+	ATTRIB(BorderImage, realFontSize_Nexposeed, vector, '0 0 0')
+	ATTRIB(BorderImage, realOrigin_Nexposeed, vector, '0 0 0')
+	ATTRIB(BorderImage, isNexposeeTitleBar, float, 0)
 ENDCLASS(BorderImage)
 #endif
 
 #ifdef IMPLEMENTATION
 void resizeNotifyBorderImage(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
+	me.isNexposeeTitleBar = 0;
+	if(me.parent.parent.instanceOfNexposee)
+		if(me.parent.instanceOfDialog)
+			if(me == me.parent.frame)
+				me.isNexposeeTitleBar = 1;
+	if(me.isNexposeeTitleBar)
+	{
+		vector scrs;
+		scrs = eX * conwidth + eY * conheight;
+		resizeNotifyLabel(me, relOrigin, relSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs));
+		me.realOrigin_y = -me.realFontSize_y;
+		me.realOrigin_Nexposeed = me.realOrigin;
+		me.realFontSize_Nexposeed = me.realFontSize;
+	}
 	resizeNotifyLabel(me, relOrigin, relSize, absOrigin, absSize);
 	me.borderVec = me.borderHeight / absSize_y * (eY + eX * (absSize_y / absSize_x));
 	me.realOrigin_y = 0.5 * (me.borderVec_y - me.realFontSize_y);
@@ -37,9 +54,31 @@
 void drawBorderImage(entity me)
 {
 	//print(vtos(me.borderVec), "\n");
+
 	if(me.src)
 		draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderVec);
 	if(me.fontSize > 0)
+	{
+		vector ro, rf;
+		if(me.isNexposeeTitleBar)
+		{
+			// me.parent.Nexposee_animationFactor 0 (small) or 1 (full)
+			// default values are for 1
+			ro = me.realOrigin;
+			rf = me.realFontSize;
+			me.realOrigin = ro * me.parent.Nexposee_animationFactor + me.realOrigin_Nexposeed * (1 - me.parent.Nexposee_animationFactor);
+			me.realFontSize = rf * me.parent.Nexposee_animationFactor + me.realFontSize_Nexposeed * (1 - me.parent.Nexposee_animationFactor);
+		}
+
 		drawLabel(me);
+
+		if(me.isNexposeeTitleBar)
+		{
+			// me.Nexposee_animationState 0 (small) or 1 (full)
+			// default values are for 1
+			me.realOrigin = ro;
+			me.realFontSize = rf;
+		}
+	}
 };
 #endif

Modified: trunk/data/qcsrc/menu-div0test/item/nexposee.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/nexposee.c	2008-01-23 08:45:18 UTC (rev 3233)
+++ trunk/data/qcsrc/menu-div0test/item/nexposee.c	2008-01-23 11:58:38 UTC (rev 3234)
@@ -44,6 +44,7 @@
 .float Nexposee_mediumAlpha;
 .vector Nexposee_scaleCenter;
 .vector Nexposee_align;
+.float Nexposee_animationFactor;
 
 void closeNexposee(entity me)
 {
@@ -59,6 +60,7 @@
 
 void resizeNotifyNexposee(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
+	me.calc(me);
 	me.resizeNotifyLie(me, relOrigin, relSize, absOrigin, absSize, Nexposee_initialOrigin, Nexposee_initialSize);
 }
 
@@ -143,7 +145,6 @@
 	if(me.animationState == -1)
 	{
 		me.animationState = 0;
-		me.calc(me);
 	}
 
 	//print(ftos(me.animationState), "\n");
@@ -185,6 +186,7 @@
 		{
 			e.Container_origin = e.Nexposee_smallOrigin * (1 - me.animationFactor) + e.Nexposee_initialOrigin * me.animationFactor;
 			e.Container_size = e.Nexposee_smallSize * (1 - me.animationFactor) + e.Nexposee_initialSize * me.animationFactor;
+			e.Nexposee_animationFactor = me.animationFactor;
 			a0 = e.Nexposee_mediumAlpha;
 			if(me.animationState == 3)
 				if(e != me.mouseFocusedChild)
@@ -196,6 +198,7 @@
 			// minimum theSize counts
 			e.Container_origin = e.Nexposee_smallOrigin;
 			e.Container_size = e.Nexposee_smallSize;
+			e.Nexposee_animationFactor = 0;
 			a = e.Nexposee_smallAlpha * (1 - me.animationFactor);
 		}
 		me.setAlphaOf(me, e, e.Container_alpha * (1 - f) + a * f);




More information about the nexuiz-commits mailing list