📄 fnewproject.class
字号:
' Gambas class fileSTATIC PUBLIC $sPath AS StringPRIVATE $hSelectDir AS FSupSelectorPRIVATE $hSelectProject AS FSupSelectorPRIVATE $hWizard AS CWizardPRIVATE $sName AS StringSTATIC PUBLIC FUNCTION Run() AS String IF FNewProject.ShowModal() THEN RETURN $sPathENDPUBLIC SUB _new() $hWizard = NEW CWizard(ME, btnPrevious, btnNext, btnOK) AS "Wizard" Config.LoadWindow(ME, "/FNewProject") optType_Click'' txtName.SetFocus'' DEC Application.BusyEND' PUBLIC SUB Form_Resize()'' ' btnCancel.Move(ME.ClientW - btnCancel.Width - 8, ME.ClientH - btnCancel.Height - 8)' ' btnOK.Move(btnCancel.X, btnCancel.Y - btnOK.Height - 8)' '' ' txtName.W = ME.ClientW - txtName.X - 8' ' lblHelp1.W = ME.ClientW' ' lblHelp2.W = ME.ClientW'' 'imgCorner.Move(ME.ClientW - imgCorner.W, ME.ClientH - imgCorner.H)'' 'panLeft.H = ME.ClientH' panTop.W = ME.ClientW - panTop.X'' 'imgGambas.X = panTop.ClientW - imgGambas.W - 8'' btnPrevious.Y = ME.ClientH - btnPrevious.H - 8' btnNext.Y = btnPrevious.Y' btnClose.Move(ME.ClientW - btnClose.W - 8, btnPrevious.Y)' btnOK.Move(btnClose.X - btnOK.Width - 8, btnClose.Y)'' panType.Resize(ME.ClientW - panType.X - 16, ME.ClientH - panType.Y - btnClose.H - 24)' txtCreate.Resize(panType.W, panType.H - txtCreate.Y)' txtName.W = panType.W' TRY $hWizard.Resize'' WITH panType' IF $hSelectDir THEN $hSelectDir.Move(0, 0, .W, .H + 32)' IF $hSelectProject THEN $hSelectProject.Move(0, 0, .W, .H)' END WITH'' ENDPUBLIC SUB btnClose_Click() ME.CloseENDPUBLIC SUB btnOK_Click() DIM aOption AS NEW String[] $sPath = $hSelectDir.Path &/ $sName IF optCopy.Value THEN IF Project.CopyProject($hSelectProject.Path, $sPath) THEN RETURN ELSE IF Len(Trim(txtTitle.Text)) THEN aOption.Add("Title=" & Trim(txtTitle.Text)) IF optGraphical.Value THEN aOption.Add("Library=gb.qt") IF chkLocalize.Value THEN aOption.Add("Localize=1") IF chkCtrlPublic.Value THEN aOption.Add("ControlPublic=1") IF Project.NewProject($sPath, aOption) THEN RETURN ENDIF ME.Close(TRUE)ENDPUBLIC SUB Explorer_Select() 'PRINT "Explorer_Select"ENDPUBLIC SUB btnNext_Click() DIM sName AS String DIM sDir AS String SELECT CASE $hWizard.Tag CASE 1 txtName.Text = "" CASE 2 IF NOT $hSelectProject.Validate() THEN RETURN $sName = File.Name($hSelectProject.Path) IF Project.CheckProjectName($sName) THEN RETURN CASE 3 $sName = Trim(txtName.Text) IF Project.CheckProjectName($sName) THEN RETURN CASE 4 IF NOT $hSelectDir.Validate() THEN RETURN sDir = $hSelectDir.Path IF Project.CheckProjectName($sName, sDir) THEN RETURN END SELECT $hWizard.NextENDPUBLIC SUB btnPrevious_Click() $hWizard.PreviousENDPUBLIC SUB Wizard_Change() DIM sTitle AS String DIM iStep AS Integer DIM iIndex AS Integer DIM sText AS String DIM hCtrl AS RadioButton DIM sOption AS String iStep = LAST.Tag iIndex = LAST.Index SELECT CASE iStep CASE 0 CASE 1 CASE 2 InitProjectSelector CASE 3 txtName.SetFocus CASE 4 InitDirSelector CASE 5 sText = "<h3>" FOR EACH hCtrl IN [ optGraphical, optTerminal, optCopy ] IF hCtrl.Value THEN sText = sText & hCtrl.Text BREAK ENDIF NEXT sText = sText & "</h3>" IF optCopy.Value THEN sText = sText & "<h4>" & ("Copy from project") & "</h4><p>" & File.Name($hSelectProject.Path) & " (<tt>" & $hSelectProject.Path & "</tt>)" ELSE sText = sText & "<h4>" & ("Project name") & "</h4><p>" & txtName.Text ENDIF sText = sText & "<h4>" & ("Project directory") & "</h4><p>" & $hSelectDir.Path sText = sText & "<h4>" & ("Options") & "</h4>" IF chkLocalize.Value THEN sOption = sOption & "<li>" & chkLocalize.Text IF chkCtrlPublic.Value THEN sOption = sOption & "<li>" & chkCtrlPublic.Text IF sOption THEN sText = sText & "<ul>" & sOption & "</ul>" ELSE sText = sText & "<p>" & ("None.") ENDIF txtCreate.Text = sText END SELECTENDPRIVATE SUB InitDirSelector() IF $hSelectDir THEN RETURN INC Application.Busy $hSelectDir = NEW FSupSelector(panDir) 'AS "Explorer" WITH $hSelectDir .DialogType = FSupSelector.SHOW_DIRECTORY 'selCreate.Root = System.Home 'selCreate.bPChildSelect = FALSE '.Path = Project.Config.Read("/NewProject", System.Home) .Key = "/NewProject" .NoProjectDir = TRUE .ShowRootTab = TRUE .ShowHomeTab = TRUE '.TreeSequence = "1" '.ButtonWidth = 0'btnOK.Width .Init() END WITH $hSelectDir.Move(lblDir.X, lblDir.Y, lblDir.W, lblDir.H) 'Form_Resize DEC Application.BusyENDPRIVATE SUB InitProjectSelector() IF $hSelectProject THEN RETURN INC Application.Busy $hSelectProject = NEW FSupSelector(panProject) 'AS "Explorer" WITH $hSelectProject .DialogType = FSupSelector.SHOW_PROJECT 'selCreate.Root = System.Home 'selCreate.bPChildSelect = FALSE .ShowHomeTab = TRUE .ShowRootTab = TRUE .Key = "/CopyProject" '.ButtonWidth = btnOK.Width .Init() END WITH $hSelectProject.Move(lblProject.X, lblProject.Y, lblProject.W, lblProject.H) 'Form_Resize DEC Application.BusyENDPUBLIC SUB optType_Click() 'PRINT "optType_Click: "; optCopy.Value $hWizard.Enable(2, optCopy.Value) $hWizard.Enable(3, NOT optCopy.Value) chkCtrlPublic.Enabled = optGraphical.ValueENDPUBLIC SUB Form_Close() Config.SaveWindow(ME, "/FNewProject")ENDPUBLIC SUB optType_DblClick() btnNext.Value = TRUEEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -