import { hilog } from '@kit.PerformanceAnalysisKit'; import { edgeColors, display, AppStorageV2 } from '@kit.ArkUI'; import { TitleTab } from './TitleLayout/TitleTab' import { LeftSideTab } from './LeftSideLayout/LeftSideTab' import { ModelViewTab } from './modelViewTab' import { TitleColumnSub } from './TitleLayout/TitleColumnSub' import { MainWindowInfo } from './AppStorageV2Class' const DOMAIN = 0x0000; @Entry @ComponentV2 struct Index { @Local mwInfo: MainWindowInfo = AppStorageV2.connect(MainWindowInfo, () => new MainWindowInfo())!; @Local startX:number=0; @Local isDragging:boolean=false; @Provider('panelWidth') panelWidth:number=this.mwInfo.mainWindowWidth * 0.15; build() { //OpenCAX主界面整体布局,采用多行布局 Column({ space: 0 }) { //头部导航功能区 TitleTab() .height(this.mwInfo.mainWindowHeight * 0.1) .borderRadius(5) //分割线 Divider().vertical(false).strokeWidth(1).lineCap(LineCapStyle.Round).width('100%').backgroundColor(Color.Grey) //工具栏 Row() { TitleColumnSub(); } .width('100%') .height(this.mwInfo.mainWindowHeight * 0.03) .align(Alignment.Start) //分割线 Divider().vertical(false).strokeWidth(1).lineCap(LineCapStyle.Round).width('100%').backgroundColor(Color.Grey) Row() { //左侧边导航区 LeftSideTab() // 拖拽手柄 Divider().vertical(true).strokeWidth(3).lineCap(LineCapStyle.Round).height('100%').backgroundColor(Color.Grey) .onMouse((event) => { if(event.button==MouseButton.Left&&event.action==MouseAction.Press){ this.startX = event.screenX; // 记录起始坐标 this.isDragging = true; }else if(event.action==MouseAction.Move&&this.isDragging){ // 计算新的宽度 let newWidth = this.panelWidth + (event.screenX - this.startX); // 添加最小宽度限制 newWidth = Math.max(newWidth, 0); this.panelWidth = newWidth; // 更新起始坐标,实现连续拖动 this.startX = event.screenX; }else if(event.action==MouseAction.Release){ this.isDragging = false; } }) //中间操作区域 Row() { ModelViewTab() }.layoutWeight(1) .align(Alignment.Center) }.width('100%') .height(this.mwInfo.mainWindowHeight * 0.36) //分割线 Divider().vertical(false).strokeWidth(1).lineCap(LineCapStyle.Round).width('100%').backgroundColor(Color.Grey) ///状态栏 Column() { Text('状态栏') }.width('100%') .align(Alignment.End) .alignItems(HorizontalAlign.Start) .height(this.mwInfo.mainWindowHeight * 0.05) }.backgroundColor('#f3f3f0') .width('100%') .height('100%') } }