X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fitem%2Fborderimage.c;h=3a345a43dfa1b6f4849cc017d26469f5b0aa5d03;hb=55c74eb054a0204f8f12f231ea070d62aa004605;hp=b23078bae061a91509793dc2dd415e542993a0cd;hpb=dcaa708cee1093798a651369d9fd46ad5074121e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/item/borderimage.c b/qcsrc/menu/item/borderimage.c index b23078bae..3a345a43d 100644 --- a/qcsrc/menu/item/borderimage.c +++ b/qcsrc/menu/item/borderimage.c @@ -2,6 +2,8 @@ CLASS(BorderImage) EXTENDS(Label) METHOD(BorderImage, configureBorderImage, void(entity, string, float, vector, string, float)) METHOD(BorderImage, resizeNotify, void(entity, vector, vector, vector, vector)) + METHOD(BorderImage, recalcPositionWithText, void(entity, string)) + ATTRIB(BorderImage, isBold, float, 1) METHOD(BorderImage, draw, void(entity)) ATTRIB(BorderImage, src, string, string_null) ATTRIB(BorderImage, borderHeight, float, 0) @@ -13,27 +15,38 @@ CLASS(BorderImage) EXTENDS(Label) ATTRIB(BorderImage, isNexposeeTitleBar, float, 0) ATTRIB(BorderImage, zoomedOutTitleBarPosition, float, 0) ATTRIB(BorderImage, zoomedOutTitleBar, float, 0) + ATTRIB(BorderImage, overrideRealOrigin, vector, '0 1 0') + ATTRIB(BorderImage, saveRelOrigin, vector, '0 0 0') + ATTRIB(BorderImage, saveRelSize, vector, '0 0 0') ENDCLASS(BorderImage) #endif #ifdef IMPLEMENTATION -void BorderImage_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize) +void BorderImage_recalcPositionWithText(entity me, string t) { - me.isNexposeeTitleBar = 0; - if(me.zoomedOutTitleBar) - 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; - SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs)); + me.resizeNotify(me, me.saveRelOrigin, me.saveRelSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs)); + SUPER(BorderImage).recalcPositionWithText(me, t); me.realOrigin_y = me.realFontSize_y * me.zoomedOutTitleBarPosition; me.realOrigin_Nexposeed = me.realOrigin; me.realFontSize_Nexposeed = me.realFontSize; + me.resizeNotify(me, me.saveRelOrigin, me.saveRelSize, boxToGlobal(me.parent.Nexposee_initialOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_initialSize, scrs)); } + SUPER(BorderImage).recalcPositionWithText(me, t); +} +void BorderImage_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize) +{ + me.isNexposeeTitleBar = 0; + if(me.zoomedOutTitleBar) + if(me.parent.parent.instanceOfNexposee) + if(me.parent.instanceOfDialog) + if(me == me.parent.frame) + me.isNexposeeTitleBar = 1; + me.saveRelOrigin = relOrigin; + me.saveRelSize = relSize; SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, absOrigin, absSize); me.borderVec_x = me.borderHeight / absSize_x; me.borderVec_y = me.borderHeight / absSize_y; @@ -59,11 +72,16 @@ void BorderImage_draw(entity me) { 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, df; + if(me.recalcPos) + me.recalcPositionWithText(me, me.text); + if(me.isNexposeeTitleBar) { + vector ro, rf, df; + // me.parent.Nexposee_animationFactor 0 (small) or 1 (full) // default values are for 1 ro = me.realOrigin; @@ -72,18 +90,21 @@ void BorderImage_draw(entity me) 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); draw_fontscale = globalToBoxSize(boxToGlobalSize(df, me.realFontSize), rf); - } - SUPER(BorderImage).draw(me); + SUPER(BorderImage).draw(me); - if(me.isNexposeeTitleBar) - { // me.Nexposee_animationState 0 (small) or 1 (full) // default values are for 1 me.realOrigin = ro; me.realFontSize = rf; draw_fontscale = df; } + else + SUPER(BorderImage).draw(me); + } + else + { + SUPER(BorderImage).draw(me); } -}; +} #endif