Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F628861
EdictDisplay.as
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None
EdictDisplay.as
View Options
#
priority
init
-
100
import
elements.BaseGuiElement
;
import
elements.GuiButton
;
import
elements.GuiText
;
import
elements.GuiSprite
;
import
elements.GuiMarkupText
;
import
elements.GuiContextMenu
;
import
elements.MarkupTooltip
;
import
tabs.Tab
;
import
util.formatting
;
import
timing
;
import
influence
;
from
tabs
.
tabbar
import
TAB_HEIGHT
,
GLOBAL_BAR_HEIGHT
,
ActiveTab
;
class
ClearEdictOption
:
GuiContextOption
{
ClearEdictOption
()
{
super
(
locale
::
EDICT_CLEAR_OPTION
);
}
void
call
(
GuiContextMenu
@
menu
)
override
{
playerEmpire
.
clearEdict
();
}
};
class
EdictDisplay
:
BaseGuiElement
{
GuiMarkupText
@
text
;
string
prevText
;
bool
clicking
=
false
;
EdictDisplay
()
{
super
(
null
,
recti_area
(
210
,
TAB_HEIGHT
+
GLOBAL_BAR_HEIGHT
,
200
,
30
));
@
text
=
GuiMarkupText
(
this
,
recti_area
(
6
,
6
,
120
,
24
));
text
.
expandWidth
=
true
;
updateAbsolutePosition
();
}
bool
onGuiEvent
(
const
GuiEvent
&
evt
)
{
switch
(
evt
.
type
)
{
case
GUI_Mouse_Left
:
if
(
evt
.
caller
is
this
)
clicking
=
false
;
break
;
}
return
BaseGuiElement
::
onGuiEvent
(
evt
);
}
void
showMenu
()
{
if
(
playerEmpire
.
SubjugatedBy
!
is
null
)
return
;
GuiContextMenu
menu
(
mousePos
);
menu
.
addOption
(
ClearEdictOption
());
menu
.
finalize
();
}
bool
onMouseEvent
(
const
MouseEvent
&
event
,
IGuiElement
@
source
)
{
if
(
source
is
this
||
source
is
text
)
{
switch
(
event
.
type
)
{
case
MET_Button_Down
:
if
(
event
.
button
==
1
)
{
clicking
=
true
;
return
true
;
}
break
;
case
MET_Button_Up
:
if
(
event
.
button
==
1
)
{
if
(
clicking
)
showMenu
();
return
true
;
}
break
;
}
}
return
BaseGuiElement
::
onMouseEvent
(
event
,
source
);
}
void
tick
(
double
time
)
{
Empire
@
master
=
playerEmpire
.
SubjugatedBy
;
uint
type
=
0
;
if
(
master
is
null
)
type
=
playerEmpire
.
getEdictType
();
else
type
=
master
.
getEdictType
();
visible
=
(
ActiveTab
.
category
==
TC_Galaxy
)
&&
type
!=
0
;
if
(
visible
)
{
string
txt
;
Empire
@
emp
;
Object
@
obj
;
if
(
master
!
is
null
)
{
@
emp
=
master
.
getEdictEmpire
();
@
obj
=
master
.
getEdictObject
();
txt
=
locale
::
EDICT_FROM_MASTER
;
}
else
{
@
emp
=
playerEmpire
.
getEdictEmpire
();
@
obj
=
playerEmpire
.
getEdictObject
();
txt
=
locale
::
EDICT_TO_VASSALS
;
}
txt
=
format
(
txt
,
formatEmpireName
(
master
),
format
(
localize
(
"#EDICT_"
+
toString
(
type
)),
formatEmpireName
(
emp
),
formatObject
(
obj
)));
if
(
txt
!=
prevText
)
{
prevText
=
txt
;
text
.
text
=
txt
;
text
.
updateAbsolutePosition
();
size
=
vec2i
(
text
.
textWidth
+
12
,
30
);
string
tt
;
if
(
master
!
is
null
)
tt
=
locale
::
TT_EDICT_FROM_MASTER
;
else
tt
=
locale
::
TT_EDICT_TO_VASSALS
;
tt
=
format
(
tt
,
formatEmpireName
(
master
),
format
(
localize
(
"#TT_EDICT_"
+
toString
(
type
)),
formatEmpireName
(
emp
),
formatObject
(
obj
)));
setMarkupTooltip
(
this
,
tt
,
width
=
300
);
}
}
}
void
draw
()
override
{
skin
.
draw
(
SS_TimeDisplay
,
SF_Normal
,
AbsolutePosition
);
BaseGuiElement
::
draw
();
}
};
EdictDisplay
@
disp
;
void
init
()
{
@
disp
=
EdictDisplay
();
}
void
tick
(
double
time
)
{
disp
.
tick
(
time
);
}
File Metadata
Details
Attached
Mime Type
text/x-script.python
Expires
Sun, Nov 15, 5:22 AM (2 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
152083
Default Alt Text
EdictDisplay.as (3 KB)
Attached To
Mode
R80 StarRuler2-Source
Attached
Detach File
Event Timeline