增加了 APPinfo 页面的基础显示功能
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36" version="29.6.6" pages="8">
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36" version="29.6.6" pages="10">
|
||||
<diagram name="显示指定层级菜单项流程" id="etDREPkzm4HehLh3Wzss">
|
||||
<mxGraphModel dx="752" dy="817" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
@@ -437,7 +437,7 @@
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram id="zG06bic9s9vmrHAmIL5z" name="第 8 页">
|
||||
<diagram id="zG06bic9s9vmrHAmIL5z" name="模型层初始化顺序">
|
||||
<mxGraphModel dx="628" dy="611" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
@@ -503,4 +503,330 @@
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram id="GAiekOzPbh1v7V_syctI" name="按键处理逻辑">
|
||||
<mxGraphModel dx="1440" dy="2571" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-84" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="开始" vertex="1">
|
||||
<mxGeometry height="54" width="92" x="1003" y="-180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-85" parent="1" style="rhombus;strokeWidth=2;whiteSpace=wrap;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="按下哪个键?" vertex="1">
|
||||
<mxGeometry height="140" width="140" x="979" y="-76" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-86" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="KEY_U" vertex="1">
|
||||
<mxGeometry height="54" width="106" x="840" y="-80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-87" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="KEY_D" vertex="1">
|
||||
<mxGeometry height="54" width="105" x="840" y="-10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-88" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="KEY_L" vertex="1">
|
||||
<mxGeometry height="54" width="103" x="840" y="64" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-89" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="KEY_R / KEY_ENT" vertex="1">
|
||||
<mxGeometry height="54" width="186" x="1080" y="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-90" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="KEY_ESC" vertex="1">
|
||||
<mxGeometry height="54" width="121" x="1153" y="-26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-91" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="其他按键" vertex="1">
|
||||
<mxGeometry height="48" width="124" x="1150" y="-110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-92" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="焦点移动到上一项" vertex="1">
|
||||
<mxGeometry height="54" width="126" x="690" y="-80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-93" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="焦点移动到下一项" vertex="1">
|
||||
<mxGeometry height="54" width="126" x="690" y="-10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-94" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="先退回上一级" vertex="1">
|
||||
<mxGeometry height="54" width="126" x="690" y="64" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-95" parent="1" style="rhombus;strokeWidth=2;whiteSpace=wrap;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="是否退回到 0 级菜单?" vertex="1">
|
||||
<mxGeometry height="100" width="190" x="650" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-96" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="重新定位到某个 0 级入口的子菜单" vertex="1">
|
||||
<mxGeometry height="54" width="210" x="700" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-97" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="停留在上一级菜单项" vertex="1">
|
||||
<mxGeometry height="56" width="204" x="856" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-98" parent="1" style="rhombus;strokeWidth=2;whiteSpace=wrap;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="当前项有子菜单?" vertex="1">
|
||||
<mxGeometry height="100" width="172" x="1087" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-99" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="进入子菜单" vertex="1">
|
||||
<mxGeometry height="54" width="140" x="930" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-100" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="若有回调则执行回调" vertex="1">
|
||||
<mxGeometry height="54" width="130" x="1080" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-101" parent="1" style="rhombus;strokeWidth=2;whiteSpace=wrap;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="当前是否在 1 级菜单?" vertex="1">
|
||||
<mxGeometry height="130" width="206" x="1290" y="28" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-102" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="快速回到初始菜单状态" vertex="1">
|
||||
<mxGeometry height="54" width="141" x="1220" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-103" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="退回上一级" vertex="1">
|
||||
<mxGeometry height="54" width="80" x="1370" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-104" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="不处理" vertex="1">
|
||||
<mxGeometry height="50" width="108" x="1310" y="-112" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-106" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-84" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-85" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-107" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-85" style="startArrow=none;endArrow=block;exitX=0;exitY=0.5;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" target="stTsyAOdvTomNQkrpvn1-86" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="820" y="-30" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-108" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-85" style="startArrow=none;endArrow=block;exitX=0;exitY=0.57;entryX=1;entryY=0.5;rounded=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-87" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-109" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-85" style="startArrow=none;endArrow=block;exitX=0;exitY=0.71;entryX=1;entryY=0.5;rounded=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-88" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-110" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-85" style="startArrow=none;endArrow=block;exitX=1;exitY=0.69;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-89" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-111" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-85" style="startArrow=none;endArrow=block;exitX=1;exitY=0.56;entryX=0;entryY=0.5;rounded=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-90" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-112" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-85" style="startArrow=none;endArrow=block;exitX=1;exitY=0.54;entryX=0;entryY=0.5;rounded=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-91" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-113" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-86" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.5;entryX=1;entryY=0.5;rounded=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-92" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-114" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-87" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.5;entryX=1;entryY=0.5;rounded=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-93" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-115" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-88" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.5;entryX=1;entryY=0.5;rounded=0;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" target="stTsyAOdvTomNQkrpvn1-94" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-116" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-94" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-95" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-117" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-95" style="startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;exitDx=0;exitDy=0;" target="stTsyAOdvTomNQkrpvn1-96" value="是">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-118" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-95" style="startArrow=none;endArrow=block;exitX=0.743;exitY=0.238;entryX=0;entryY=0.5;rounded=0;entryDx=0;entryDy=0;exitDx=0;exitDy=0;exitPerimeter=0;" target="stTsyAOdvTomNQkrpvn1-97" value="否">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-119" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-89" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-98" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-120" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-98" style="startArrow=none;endArrow=block;exitX=0.1;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-99" value="是">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-121" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-98" style="startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;exitDx=0;exitDy=0;" target="stTsyAOdvTomNQkrpvn1-100" value="否">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-122" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-90" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.301;entryY=0.223;rounded=0;entryDx=0;entryDy=0;entryPerimeter=0;" target="stTsyAOdvTomNQkrpvn1-101" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-123" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-101" style="startArrow=none;endArrow=block;exitX=0.09;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-102" value="是">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-124" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-101" style="startArrow=none;endArrow=block;exitX=0.91;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="stTsyAOdvTomNQkrpvn1-103" value="否">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stTsyAOdvTomNQkrpvn1-125" edge="1" parent="1" source="stTsyAOdvTomNQkrpvn1-91" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;rounded=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" target="stTsyAOdvTomNQkrpvn1-104" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram id="dIhOnUq7jFqkhXTXlf7A" name="系统架构">
|
||||
<mxGraphModel dx="237" dy="1037" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-1" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=15;" value="🏗️ 底层基础设施 (Infrastructure)






" vertex="1">
|
||||
<mxGeometry height="150" width="640" x="900" y="849" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-2" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#d5e8d4;strokeColor=#82b366;" value="🔧 驱动抽象层 (Driver Abstraction)







" vertex="1">
|
||||
<mxGeometry height="152" width="640" x="900" y="686" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-3" parent="1" style="whiteSpace=wrap;strokeWidth=2;" value="⚙️ MVP 业务层 (MVP Business Layer)

























" vertex="1">
|
||||
<mxGeometry height="392" width="640" x="900" y="282" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-4" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#f8cecc;strokeColor=#b85450;" value="⚙️ YC Page





















" vertex="1">
|
||||
<mxGeometry height="347" width="170" x="1351" y="307" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-5" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#fff2cc;strokeColor=#d6b656;" value="ℹ️ AppInfo Page





















" vertex="1">
|
||||
<mxGeometry height="347" width="190" x="1140" y="307" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-6" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#ffe6cc;strokeColor=#d79b00;" value="📋 Menu Page





















" vertex="1">
|
||||
<mxGeometry height="347" width="200" x="916" y="307" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-7" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" value="🔄 多页面管理层 (Page Management)




" vertex="1">
|
||||
<mxGeometry height="110" width="640" x="900" y="160" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-8" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;" value="📱 应用层 (Application Layer)


" vertex="1">
|
||||
<mxGeometry height="102" width="640" x="900" y="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-9" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;" value="main.c
系统初始化 / 主循环调度
/ 生命周期管理" vertex="1">
|
||||
<mxGeometry height="62" width="420" x="1037" y="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-10" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="📦 Page Manager
栈式调度
事件分发器" vertex="1">
|
||||
<mxGeometry height="63" width="185" x="983" y="197" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-11" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="🌍 Global Model
跨页面共享数据
持久化配置
观察者通知" vertex="1">
|
||||
<mxGeometry height="62" width="180" x="1305" y="197" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-12" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="Model
菜单数据与状态" vertex="1">
|
||||
<mxGeometry height="78" width="170" x="933" y="341" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-13" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="Presenter
事件处理/导航逻辑" vertex="1">
|
||||
<mxGeometry height="78" width="170" x="933" y="454" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-14" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="View
菜单渲染绘制" vertex="1">
|
||||
<mxGeometry height="78" width="170" x="933" y="564" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-15" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="Model
应用信息数据" vertex="1">
|
||||
<mxGeometry height="78" width="156" x="1161" y="341" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-16" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="Presenter
信息展示逻辑" vertex="1">
|
||||
<mxGeometry height="78" width="156" x="1156" y="454" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-17" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="View
信息页面渲染" vertex="1">
|
||||
<mxGeometry height="78" width="156" x="1156" y="564" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-18" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="Model
YC 配置数据" vertex="1">
|
||||
<mxGeometry height="78" width="148" x="1363" y="341" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-19" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="Presenter
YC 控制逻辑" vertex="1">
|
||||
<mxGeometry height="78" width="148" x="1363" y="454" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-20" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);" value="View
YC 页面渲染" vertex="1">
|
||||
<mxGeometry height="78" width="148" x="1363" y="564" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-21" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;flipH=1;legacyAnchorPoints=0;" value="🖥️ LCD 驱动
显存操作
图形/文字绘制" vertex="1">
|
||||
<mxGeometry height="100" width="160" x="1153" y="726" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-22" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#fa6800;strokeColor=#C73500;fontColor=#000000;flipH=1;legacyAnchorPoints=0;" value="⌨️ 按键驱动
输入抽象
本地/远程注入" vertex="1">
|
||||
<mxGeometry height="100" width="160" x="956" y="726" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-24" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#e3c800;strokeColor=#B09500;fontColor=#000000;flipH=1;legacyAnchorPoints=0;" value="🎨 渲染端口
底层绘制接口" vertex="1">
|
||||
<mxGeometry height="100" width="160" x="1346" y="726" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-25" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#6d8764;strokeColor=#3A5431;fontColor=#ffffff;" value="🌐 TCP/Socket
网络通信封装
跨平台适配" vertex="1">
|
||||
<mxGeometry height="102" width="150" x="959" y="879" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-26" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#647687;strokeColor=#314354;fontColor=#ffffff;" value="⚡ 线程工具
线程管理
同步机制" vertex="1">
|
||||
<mxGeometry height="102" width="151" x="1141" y="879" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-27" parent="1" style="whiteSpace=wrap;strokeWidth=2;fillColor=#a0522d;strokeColor=#6D1F00;fontColor=#ffffff;" value="🔤 UTF-8 处理
编码转换
字符解析" vertex="1">
|
||||
<mxGeometry height="102" width="155" x="1351.5" y="879" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-28" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-9" style="startArrow=none;endArrow=block;exitX=0.09;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-10" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-29" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-9" style="startArrow=none;endArrow=block;exitX=0.85;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-11" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-30" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-12" style="startArrow=block;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;exitDx=0;exitDy=0;" target="SKzmmjIQc6qRBKoh8kct-13" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-31" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-13" style="curved=1;startArrow=block;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-14" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-32" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-15" style="startArrow=block;endArrow=block;exitX=0.46;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-16" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-33" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-16" style="curved=1;startArrow=block;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-17" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-34" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-18" style="startArrow=block;endArrow=block;entryX=0.5;entryY=0;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="SKzmmjIQc6qRBKoh8kct-19" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-35" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-19" style="curved=1;startArrow=block;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-20" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-36" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-22" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-25" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-37" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-25" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.5;entryX=0;entryY=0.5;rounded=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-26" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-38" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-21" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;" target="SKzmmjIQc6qRBKoh8kct-27" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-39" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-11" style="dashed=1;dashPattern=2 3;startArrow=none;endArrow=block;entryX=0.5;entryY=0;rounded=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="SKzmmjIQc6qRBKoh8kct-12" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="1403" y="280" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-40" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-11" style="dashed=1;dashPattern=2 3;startArrow=none;endArrow=block;exitX=0.49;exitY=1;entryX=0.5;entryY=0;rounded=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-15" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-41" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-11" style="dashed=1;dashPattern=2 3;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;rounded=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-18" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-42" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-10" style="curved=1;startArrow=none;endArrow=block;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="SKzmmjIQc6qRBKoh8kct-6" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-43" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-10" style="curved=1;startArrow=none;endArrow=block;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-5" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-44" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-10" style="curved=1;startArrow=none;endArrow=block;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="SKzmmjIQc6qRBKoh8kct-4" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-45" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-14" style="curved=1;startArrow=none;endArrow=block;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-21" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-46" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-6" style="curved=1;startArrow=none;endArrow=block;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="SKzmmjIQc6qRBKoh8kct-22" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-48" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-17" style="curved=1;startArrow=none;endArrow=block;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-21" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="SKzmmjIQc6qRBKoh8kct-49" edge="1" parent="1" source="SKzmmjIQc6qRBKoh8kct-20" style="curved=1;startArrow=none;endArrow=block;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="SKzmmjIQc6qRBKoh8kct-21" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
|
||||
Reference in New Issue
Block a user