-#ifdef INTERFACE
-CLASS(ModalController) EXTENDS(Container)
- METHOD(ModalController, resizeNotify, void(entity, vector, vector, vector, vector))
- METHOD(ModalController, draw, void(entity))
- METHOD(ModalController, showChild, void(entity, entity, vector, vector, float))
- METHOD(ModalController, hideChild, void(entity, entity, float))
- METHOD(ModalController, hideAll, void(entity, float))
- METHOD(ModalController, addItem, void(entity, entity, vector, vector, float))
- METHOD(ModalController, addTab, void(entity, entity, entity))
+#ifndef ITEM_MODALCONTROLLER_H
+#define ITEM_MODALCONTROLLER_H
+#include "container.qc"
+CLASS(ModalController, Container)
+ METHOD(ModalController, resizeNotify, void(entity, vector, vector, vector, vector));
+ METHOD(ModalController, draw, void(entity));
+ METHOD(ModalController, showChild, void(entity, entity, vector, vector, float));
+ METHOD(ModalController, hideChild, void(entity, entity, float));
+ METHOD(ModalController, hideAll, void(entity, float));
+ METHOD(ModalController, addItem, void(entity, entity, vector, vector, float));
+ METHOD(ModalController, addTab, void(entity, entity, entity));
- METHOD(ModalController, initializeDialog, void(entity, entity))
+ METHOD(ModalController, initializeDialog, void(entity, entity));
- METHOD(ModalController, switchState, void(entity, entity, float, float))
+ METHOD(ModalController, switchState, void(entity, entity, float, float));
ATTRIB(ModalController, origin, vector, '0 0 0')
ATTRIB(ModalController, size, vector, '0 0 0')
ATTRIB(ModalController, previousButton, entity, NULL)
if(e.ModalController_state)
{
if(front)
- {
me.switchState(me, front, 2, 0);
- if(front.ModalController_factor < 1)
- animating = 1;
- }
front = e;
}
if(front)
- {
me.switchState(me, front, 1, 0);
- if(front.ModalController_factor < 1)
- animating = 1;
- }
-
- if(front && front.Container_alpha == front.ModalController_initialAlpha)
- goto update_done; // update isn't needed, everything stay as is
df = frametime * 3; // animation speed
me.setAlphaOf(me, e, e.Container_alpha * prevFactor);
else
{
+ animating = 1;
targetFactor = df / (1 - f + df);
if(e.ModalController_state == 1)
e.Container_fontscale_y = fs.y * e.ModalController_initialFontScale.y;
}
}
- :update_done
if(animating || !me.focused)
me.setFocus(me, NULL);