📄 ftoolbox.class
字号:
' Gambas class filePRIVATE $sTool AS StringPRIVATE CONST WIDTH AS Integer = 40PRIVATE $cToolBar AS NEW CollectionPRIVATE $sToolBar AS StringPRIVATE $sLastToolBar AS StringPRIVATE $W AS IntegerPRIVATE $H AS IntegerPRIVATE $sLastLib AS StringPRIVATE $iSize AS IntegerPRIVATE $bAnimate AS BooleanPUBLIC SUB _new() DIM iInd AS Integer DIM hCtrl AS Control ME.Move(Desktop.W - ME.W, 0) Config.LoadWindow(ME, "/FToolBox") ReadConfig SetToolENDPRIVATE FUNCTION AddToolBar(sToolBar AS String, sType AS String) AS FToolBar DIM hToolBar AS FToolBar IF NOT $cToolBar.Exist(sToolBar) THEN hToolBar = NEW FToolBar(sToolBar, sType, ME) AS "ToolBar" $cToolBar[sToolBar] = hToolBar IF NOT $sToolbar THEN $sToolBar = sToolBar ENDIF RETURN $cToolBar[sToolBar]ENDPRIVATE SUB MoveToolbar(OPTIONAL bAnim AS Boolean) DIM hToolBar AS FToolBar DIM Y AS Integer DIM iInd AS Integer DIM bCurrent AS Boolean FOR EACH hToolBar IN $cToolBar bCurrent = $cToolBar.Key = $sToolBar hToolBar.ShowToolBar(TRUE) IF bAnim AND $bAnimate THEN IF ((hToolBar.Y < Y) AND $cToolBar.Key = $sLastToolBar) OR ((hToolBar.Y > Y) AND bCurrent) THEN FOR iInd = hToolBAR.Y TO Y STEP 8 * Sgn(Y - hToolBar.Y) hToolBar.Y = iInd WAIT 0.001 NEXT ENDIF ENDIF hToolBar.Move(0, Y, ME.ClientW, ME.ClientH) 'hToolBar.ShowToolBar(bCurrent) IF $cToolBar.Key = $sToolBar THEN Y = Y + ME.CLientH - $cToolBar.Count * FToolBar.HEIGHT ENDIF Y = Y + FToolBar.HEIGHT NEXT FOR EACH hToolBar IN $cToolBar bCurrent = $cToolBar.Key = $sToolBar hToolBar.ShowToolBar(bCurrent) NEXTENDPUBLIC SUB RefreshToolbar() DIM hToolBar AS FToolBar DIM sLib AS String DIM sCtrl AS String DIM sNewLib AS String DIM aLib AS String[] IF Project.Libraries THEN FOR EACH sLib IN Project.Libraries sNewLib = sNewLib & sLib & " " NEXT sNewLib = Trim(sNewLib) ENDIF IF $sLastLib THEN IF sNewLib = $sLastLib THEN RETURN ENDIF FOR EACH hToolBar IN $cToolBar hToolBar.Delete NEXT $cToolBar.Clear $sToolBar = "" 'AddTool(SELECT_TOOL) 'SetTool() IF Project.Libraries THEN FOR EACH sLib IN Project.Libraries IF NOT CComponent.All.Exist(sLib) THEN CONTINUE WITH CComponent.All[sLib] FOR EACH sCtrl IN .Controls AddToolBar(.Group, .Type).Add(sCtrl) NEXT 'CControl.AddClasses(.Controls, sLib) END WITH NEXT TRY SelectToolbar("Form") ENDIF $sLastLib = sNewLibENDPRIVATE SUB ClearToolBar() $sLastLib = "" RefreshToolBar ENDPUBLIC SUB Form_Close() Config.SaveWindow(ME, "/FToolBox")ENDPUBLIC SUB SelectToolBar(sToolBar AS String) IF NOT $cToolBar.Exist(sToolBar) THEN RETURN $sLastToolBar = $sToolBar $sToolBar = sToolBar MoveToolBar(ME.Visible)ENDPUBLIC SUB Form_Resize() MoveToolbarENDPUBLIC FUNCTION GetTool() AS String IF NOT $sToolBar THEN RETURN RETURN $cToolBar[$sToolBar].GetTool()ENDPUBLIC SUB SetTool() IF NOT $sToolBar THEN RETURN $cToolBar[$sToolBar].SetTool()END' PUBLIC SUB ToolBar_Change()'' PRINT "ToolBar_Change: "; LAST.Name'' ENDPUBLIC SUB ReadConfig() DIM iSize AS Integer iSize = Settings["/ToolBar/IconSize", 32] IF iSize <> $iSize THEN $iSize = iSize ClearToolBar ENDIF $bAnimate = Settings["/ToolBar/Animate", TRUE] END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -