diff --git a/main2.pb b/main2.pb index 447d337..4c49aeb 100644 --- a/main2.pb +++ b/main2.pb @@ -399,14 +399,19 @@ Enumeration GadgetsIDs #GID_BtnBrowseRepo #GID_BtnInit #GID_BtnRefresh + ; --- NEW: Local branches --- + #GID_LblLocalBranch + #GID_CbLocalBranch + #GID_BtnNewLocalBranch ; Remote frame #GID_FrmRemote #GID_LblRemote #GID_EdRemote - #GID_LblBranch - #GID_CbBranch - #GID_BtnNewBranch + ; --- NEW: Remote branches --- + #GID_LblRemoteBranch + #GID_CbRemoteBranch + #GID_BtnNewRemoteBranch #GID_BtnClone #GID_BtnPull #GID_BtnPush @@ -451,7 +456,7 @@ Enumeration GadgetsIDs #GID_CbScope #GID_BtnSaveCfg - ; --- App settings (langue) --- + ; --- App settings (langue) --- #GID_FrmApp #GID_LblAppLang #GID_CbAppLang @@ -482,6 +487,7 @@ Enumeration GadgetsIDs #GID_BtnApplyProxy EndEnumeration + ; ----------------------------------------------------------------------------- ; SMALL HELPERS / AIDES UTILITAIRES ; ----------------------------------------------------------------------------- @@ -498,7 +504,7 @@ Procedure ResizeGUI() If winW < #UI_WinMinW : winW = #UI_WinMinW : EndIf If winH < #UI_WinMinH : winH = #UI_WinMinH : EndIf - ; Left panel width adapts, but keeps at least minimum + ; Largeur du panel gauche (avec min/max) Protected panelW = #UI_PanelStartW panelW = Min(panelW, winW - #UI_HelpMinW - #UI_Margin*4) panelW = Max(panelW, #UI_PanelMinW) @@ -506,59 +512,85 @@ Procedure ResizeGUI() Protected panelH = winH - #UI_Margin*2 ResizeGadget(#GID_Panel, #UI_Margin, #UI_Margin, panelW, panelH) - ; Help / Aide area on the right fills the remaining space + ; Zone d’aide à droite Protected helpX = #UI_Margin*2 + panelW Protected helpW = winW - helpX - #UI_Margin Protected helpH = panelH ResizeGadget(#GID_HelpFrame, helpX, #UI_Margin, helpW, helpH) - ; WebView inside frame (with padding and header) Protected innerX = helpX + #UI_Inset Protected innerY = #UI_Margin + #UI_FrameHeaderH Protected innerW = helpW - #UI_Inset*2 Protected innerH = helpH - #UI_Inset - #UI_FrameHeaderH ResizeGadget(#GID_HelpWeb, innerX, innerY, innerW, innerH) - ; --- Resize essentials inside tabs (keep it simple & robust) --- - ; TAB 1: Files list should expand with panel height + ; === Onglet 1 : Local + Remote + Files === + ; Étire les frames Local/Remote à la nouvelle largeur et recalcule l'empilement + Protected hLocal = GadgetHeight(#GID_FrmLocal) + Protected hRemote = GadgetHeight(#GID_FrmRemote) + + ResizeGadget(#GID_FrmLocal, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, hLocal) + + Protected yRemote = BottomOf(#GID_FrmLocal) + #UI_Inset + ResizeGadget(#GID_FrmRemote, #UI_Inset, yRemote, panelW - #UI_Inset*2, hRemote) + + ; --- Ajuste les contrôles internes dépendants de la largeur --- + ; LOCAL: Combo branche + bouton + Protected yLocalBranch = GadgetY(#GID_CbLocalBranch) + Protected cbLocalW = GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - GadgetWidth(#GID_LblLocalBranch) - 150 + If cbLocalW < 120 : cbLocalW = 120 : EndIf + ResizeGadget(#GID_CbLocalBranch, RightOf(#GID_LblLocalBranch), yLocalBranch, cbLocalW, #UI_RowH) + ResizeGadget(#GID_BtnNewLocalBranch, RightOf(#GID_CbLocalBranch) + #UI_Inset, yLocalBranch, 150, #UI_RowH) + + ; REMOTE: URL + combo branche distante + bouton + Protected yRemoteUrl = GadgetY(#GID_EdRemote) + Protected edRemoteW = GadgetWidth(#GID_FrmRemote) - #UI_Inset*2 - GadgetWidth(#GID_LblRemote) - #UI_Inset + If edRemoteW < 120 : edRemoteW = 120 : EndIf + ResizeGadget(#GID_EdRemote, RightOf(#GID_LblRemote) + #UI_Inset, yRemoteUrl, edRemoteW, #UI_RowH) + + Protected yRemoteBranch = GadgetY(#GID_CbRemoteBranch) + Protected cbRemoteW = GadgetWidth(#GID_FrmRemote) - #UI_Inset*3 - GadgetWidth(#GID_LblRemoteBranch) - 160 + If cbRemoteW < 120 : cbRemoteW = 120 : EndIf + ResizeGadget(#GID_CbRemoteBranch, RightOf(#GID_LblRemoteBranch), yRemoteBranch, cbRemoteW, #UI_RowH) + ResizeGadget(#GID_BtnNewRemoteBranch, RightOf(#GID_CbRemoteBranch) + #UI_Inset, yRemoteBranch, 160, #UI_RowH) + + ; FILES: prend tout l'espace restant Protected filesTop = BottomOf(#GID_FrmRemote) + #UI_Inset Protected filesH = panelH - filesTop - #UI_Inset + If filesH < 150 : filesH = 150 : EndIf ResizeGadget(#GID_FrmFiles, #UI_Inset, filesTop, panelW - #UI_Inset*2, filesH) - Protected listMargin = #UI_Inset Protected listH = filesH - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH If listH < 100 : listH = 100 : EndIf ResizeGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, listH) - ; Buttons row positions under list Protected btnY = #UI_FrameHeaderH + listH + #UI_Inset ResizeGadget(#GID_BtnRestore, #UI_Inset + 10, btnY, 110, #UI_RowH) ResizeGadget(#GID_BtnRename, #UI_Inset + 130, btnY, 110, #UI_RowH) ResizeGadget(#GID_BtnDelete, #UI_Inset + 250, btnY, 110, #UI_RowH) ResizeGadget(#GID_BtnIgnore, #UI_Inset + 370, btnY, 110, #UI_RowH) - ; Commit message line under the buttons Protected msgY = btnY + #UI_RowH + #UI_Inset ResizeGadget(#GID_LblMessage, #UI_Inset + 10, msgY + 4, 80, 22) ResizeGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, msgY - 2, 100, #UI_RowH) ResizeGadget(#GID_EdMessage, #UI_Inset + 95, msgY, GadgetX(#GID_BtnCommit) - (#UI_Inset + 95) - #UI_Inset, #UI_RowH) - ; TAB 2: History List + editor + ; === Onglet 2 : History === Protected histListH = panelH - #UI_Margin*2 - #UI_RowH - 10 - 150 - 10 If histListH < 100 : histListH = 100 : EndIf ResizeGadget(#GID_ListHistory, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, histListH) ResizeGadget(#GID_BtnRestoreCommit, #UI_Inset, #UI_Inset + histListH + #UI_Inset, 180, #UI_RowH) ResizeGadget(#GID_TxtCommitInfo, #UI_Inset, panelH - #UI_Inset - 150, panelW - #UI_Inset*2, 150) - ; TAB 3: .gitignore + ; === Onglet 3 : .gitignore === Protected gitEdH = panelH - #UI_Inset*4 - #UI_RowH ResizeGadget(#GID_TxtGitIgnore, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, gitEdH) ResizeGadget(#GID_BtnSaveGitIgnore, #UI_Inset, #UI_Inset + gitEdH + #UI_Inset, 100, #UI_RowH) - ; TAB 4: Config frame fits content (kept constant height) - ; (no additional dynamic resize needed here) + ; Onglet 4 : statique (inchangé) EndProcedure + ; ----------------------------------------------------------------------------- ; Tooltips & i18n ; FR: Appeler après la création des gadgets, puis après tout changement de langue. @@ -573,8 +605,18 @@ Procedure ApplyToolTips() ; --- Remote / Branch --- GadgetToolTip(#GID_EdRemote, T("tip.remote", "URL du remote (ex.: https://... ou git@host:org/repo.git)")) - GadgetToolTip(#GID_CbBranch, T("tip.branch.select", "Choisir la branche active")) - GadgetToolTip(#GID_BtnNewBranch, T("tip.branch.new", "Créer une nouvelle branche")) + + ; Local branches + GadgetToolTip(#GID_CbLocalBranch, T("tip.branch.local.select", "Choisir la branche locale active")) + GadgetToolTip(#GID_BtnNewLocalBranch,T("tip.branch.local.new", "Créer une nouvelle branche locale")) + + ; Remote branches + GadgetToolTip(#GID_CbRemoteBranch, T("tip.branch.remote.select", "Choisir une branche distante (remote-tracking)")) + GadgetToolTip(#GID_BtnNewRemoteBranch,T("tip.branch.remote.new", "Créer une branche sur le dépôt distant / publier")) + + + ; --- Remote / Branch --- + GadgetToolTip(#GID_EdRemote, T("tip.remote", "URL du remote (ex.: https://... ou git@host:org/repo.git)")) GadgetToolTip(#GID_BtnClone, T("tip.clone", "Cloner depuis l’URL remote")) GadgetToolTip(#GID_BtnPull, T("tip.pull", "Récupérer et fusionner depuis le remote")) GadgetToolTip(#GID_BtnPush, T("tip.push", "Envoyer vos commits sur le remote")) @@ -645,8 +687,8 @@ Procedure OpenGUI() ; =========================================================================== AddGadgetItem(#GID_Panel, -1, T("Tab.Repo", "Dépôt")) - ; ---- Frame: Local repository ------------------------------------------------ - FrameGadget(#GID_FrmLocal, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*2 + #UI_Inset*2, T("Local.FrameTitle", "Dépôt local"), #PB_Frame_Container) +; ---- Frame: Local repository ------------------------------------------------ + FrameGadget(#GID_FrmLocal, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*3 + #UI_Inset*3, T("Local.FrameTitle", "Dépôt local"), #PB_Frame_Container) TextGadget(#GID_LblRepo, #UI_Inset, #UI_FrameHeaderH, 70, #UI_RowH, T("Local.Label.Repo","Dépôt :")) StringGadget(#GID_EdRepo, RightOf(#GID_LblRepo) + #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - 70 - #UI_BtnW, #UI_RowH, repoDir$) @@ -654,55 +696,76 @@ Procedure OpenGUI() ButtonGadget(#GID_BtnInit, #UI_Inset, BottomOf(#GID_BtnBrowseRepo) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Local.Button.Init","Init Dépôt")) ButtonGadget(#GID_BtnRefresh, RightOf(#GID_BtnInit) + #UI_Inset, GadgetY(#GID_BtnInit), #UI_BtnW, #UI_RowH, T("Local.Button.Refresh","Rafraîchir")) + + ; --- NEW: branche locale (sélecteur + bouton) --- + Define yLocalBranch = BottomOf(#GID_BtnRefresh) + #UI_Inset + TextGadget(#GID_LblLocalBranch, #UI_Inset, yLocalBranch, 120, #UI_RowH, T("Local.Label.Branch","Branche locale :")) + ComboBoxGadget(#GID_CbLocalBranch, RightOf(#GID_LblLocalBranch), yLocalBranch, GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - 120 - 150, #UI_RowH, #PB_ComboBox_Editable) + ButtonGadget(#GID_BtnNewLocalBranch, RightOf(#GID_CbLocalBranch) + #UI_Inset, yLocalBranch, 150, #UI_RowH, T("Local.Button.NewBranch","+ Nouvelle branche")) CloseGadgetList() - ; ---- Frame: Remote / Branche ------------------------------------------------ + ; ---- Frame: Remote / Branche ------------------------------------------------ Define yRemote = BottomOf(#GID_FrmLocal) + #UI_Inset - FrameGadget(#GID_FrmRemote, #UI_Inset, yRemote, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*4 + #UI_Inset*4, T("Remote.FrameTitle","Distant (remote / branche)"), #PB_Frame_Container) + FrameGadget(#GID_FrmRemote, #UI_Inset, yRemote, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*5 + #UI_Inset*5, T("Remote.FrameTitle","Distant (remote / branche)"), #PB_Frame_Container) + ; Ligne 1: URL du remote TextGadget(#GID_LblRemote, #UI_Inset, #UI_FrameHeaderH, 70, #UI_RowH, T("Remote.Label.Remote","Remote :")) StringGadget(#GID_EdRemote, RightOf(#GID_LblRemote) + #UI_Inset, #UI_FrameHeaderH, 420, #UI_RowH, "") - - TextGadget(#GID_LblBranch, RightOf(#GID_EdRemote) + #UI_Inset, #UI_FrameHeaderH, 80, #UI_RowH, T("Remote.Label.Branch","Branche :")) - ComboBoxGadget(#GID_CbBranch, RightOf(#GID_LblBranch), #UI_FrameHeaderH, 220, #UI_RowH, #PB_ComboBox_Editable) - ButtonGadget(#GID_BtnNewBranch, RightOf(#GID_CbBranch) + #UI_Inset, #UI_FrameHeaderH, 130, #UI_RowH, T("Remote.Button.NewBranch","New branch")) - - ButtonGadget(#GID_BtnClone, #UI_Inset, BottomOf(#GID_LblRemote) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Remote.Button.Clone","Clone")) + + ; Ligne 2: Branche distante (sélecteur + bouton) + Define yRemoteBranch = BottomOf(#GID_EdRemote) + #UI_Inset + TextGadget(#GID_LblRemoteBranch, #UI_Inset, yRemoteBranch, 130, #UI_RowH, T("Remote.Label.BranchRemote","Branche distante :")) + ComboBoxGadget(#GID_CbRemoteBranch, RightOf(#GID_LblRemoteBranch), yRemoteBranch, 220, #UI_RowH) + ButtonGadget(#GID_BtnNewRemoteBranch, RightOf(#GID_CbRemoteBranch) + #UI_Inset, yRemoteBranch, 160, #UI_RowH, T("Remote.Button.NewRemoteBranch","+ Nouvelle branche distante")) + + ; Ligne 3: Actions réseau + ButtonGadget(#GID_BtnClone, #UI_Inset, BottomOf(#GID_LblRemoteBranch) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Remote.Button.Clone","Clone")) ButtonGadget(#GID_BtnPull, RightOf(#GID_BtnClone) + #UI_Inset, GadgetY(#GID_BtnClone), #UI_BtnW, #UI_RowH, T("Remote.Button.Pull","Pull")) ButtonGadget(#GID_BtnPush, RightOf(#GID_BtnPull) + #UI_Inset, GadgetY(#GID_BtnClone), #UI_BtnW, #UI_RowH, T("Remote.Button.Push","Push")) - + + ; Ligne 4: Statut & dernière synchro Define yStatus = BottomOf(#GID_BtnClone) + #UI_Inset TextGadget(#GID_LblRemoteStatus, #UI_Inset, yStatus, 70, #UI_RowH, T("Remote.Status.Label","Status :")) TextGadget(#GID_TxtRemoteStatus, RightOf(#GID_LblRemoteStatus), yStatus, 200, #UI_RowH, T("Remote.Status.Checking","Vérification..."), #PB_Text_Border) - TextGadget(#GID_LblLastFetch, RightOf(#GID_TxtRemoteStatus) + 15, yStatus, 110, #UI_RowH, T("Remote.LastSync.Label","Dernière sync :")) TextGadget(#GID_TxtLastFetch, RightOf(#GID_LblLastFetch), yStatus, 120, #UI_RowH, "-", #PB_Text_Border) ButtonGadget(#GID_BtnVerify, RightOf(#GID_TxtLastFetch) + 10, yStatus - 2, 90, #UI_RowH, T("Remote.Button.Verify","Vérifier")) - + + ; Ligne 5: Action en cours TextGadget(#GID_LblAction, #UI_Inset, BottomOf(#GID_LblRemoteStatus) + #UI_Inset, 60, 20, T("Remote.Action.Label","Action :")) TextGadget(#GID_TxtAction, RightOf(#GID_LblAction), GadgetY(#GID_LblAction), 300, 20, "-", #PB_Text_Border) CloseGadgetList() + ; ---- Frame: Files & changes ------------------------------------------------- - Define yFiles = BottomOf(#GID_FrmRemote) + #UI_Inset - Define hFiles = panelH - yFiles - #UI_Inset - FrameGadget(#GID_FrmFiles, #UI_Inset, yFiles, GadgetWidth(#GID_Panel) - #UI_Inset*2, hFiles, T("Files.FrameTitle","Fichiers & modifications"), #PB_Frame_Container) - - ListIconGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, hFiles - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH, T("Files.List.Path","Path"), 300, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection) - AddGadgetColumn(#GID_ListStatus, 1, T("Files.List.Status","Status"), 80) - AddGadgetColumn(#GID_ListStatus, 2, T("Files.List.Description","Description"), 300) - - Define yLocalActions = BottomOf(#GID_ListStatus) + #UI_Inset - ButtonGadget(#GID_BtnRestore, #UI_Inset + 10, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Restore","Restaurer")) - ButtonGadget(#GID_BtnRename, #UI_Inset + 130, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Rename","Renommer")) - ButtonGadget(#GID_BtnDelete, #UI_Inset + 250, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Delete","Supprimer")) - ButtonGadget(#GID_BtnIgnore, #UI_Inset + 370, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Ignore","Ignorer")) - - Define yMsg = BottomOf(#GID_BtnRestore) + #UI_Inset - TextGadget(#GID_LblMessage, #UI_Inset + 10, yMsg + 4, 80, 22, T("Commit.Label.Message","Message :")) - StringGadget(#GID_EdMessage, #UI_Inset + 95, yMsg, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2 - 95 - 110, #UI_RowH, "") - ButtonGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, yMsg - 2, 100, #UI_RowH, T("Commit.Button.Commit","Commit")) - CloseGadgetList() +Define yFiles = BottomOf(#GID_FrmRemote) + #UI_Inset +Define hFiles = panelH - yFiles - #UI_Inset +If hFiles < 260 : hFiles = 260 : EndIf ; hauteur mini du frame pour éviter valeurs négatives + +FrameGadget(#GID_FrmFiles, #UI_Inset, yFiles, GadgetWidth(#GID_Panel) - #UI_Inset*2, hFiles, T("Files.FrameTitle","Fichiers & modifications"), #PB_Frame_Container) + +; Hauteur de la liste avec garde-fou (même logique que dans ResizeGUI) +Define listH = hFiles - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH +If listH < 100 : listH = 100 : EndIf + +ListIconGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, listH, T("Files.List.Path","Path"), 300, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection) +AddGadgetColumn(#GID_ListStatus, 1, T("Files.List.Status","Status"), 80) +AddGadgetColumn(#GID_ListStatus, 2, T("Files.List.Description","Description"), 300) + +; Ligne boutons sous la liste +Define yLocalActions = #UI_FrameHeaderH + listH + #UI_Inset +ButtonGadget(#GID_BtnRestore, #UI_Inset + 10, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Restore","Restaurer")) +ButtonGadget(#GID_BtnRename, #UI_Inset + 130, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Rename","Renommer")) +ButtonGadget(#GID_BtnDelete, #UI_Inset + 250, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Delete","Supprimer")) +ButtonGadget(#GID_BtnIgnore, #UI_Inset + 370, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Ignore","Ignorer")) + +; Message de commit +Define yMsg = yLocalActions + #UI_RowH + #UI_Inset +TextGadget(#GID_LblMessage, #UI_Inset + 10, yMsg + 4, 80, 22, T("Commit.Label.Message","Message :")) +StringGadget(#GID_EdMessage, #UI_Inset + 95, yMsg, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2 - 95 - 110, #UI_RowH, "") +ButtonGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, yMsg - 2, 100, #UI_RowH, T("Commit.Button.Commit","Commit")) +CloseGadgetList() + ; =========================================================================== ; TAB 2: HISTORY @@ -730,8 +793,8 @@ Procedure OpenGUI() ; TAB 4: CONFIG ; =========================================================================== AddGadgetItem(#GID_Panel, -1, T("Tabs.Config","Config")) - - ; --- Frame: Paramètres de l’application (LANGUE, etc.) --- + + ; --- Frame: Paramètres de l’application (LANGUE, etc.) --- FrameGadget(#GID_FrmApp, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, 90, T("App.FrameTitle","Paramètres de l’application"), #PB_Frame_Container) TextGadget(#GID_LblAppLang, #UI_Inset + 10, #UI_Inset + 35, 120, 22, T("App.Label.Lang","Langue")) ComboBoxGadget(#GID_CbAppLang, #UI_Inset + 140, #UI_Inset + 33, 220, #UI_RowH) @@ -739,7 +802,7 @@ Procedure OpenGUI() AddGadgetItem(#GID_CbAppLang, -1, "English (en)") SetGadgetState(#GID_CbAppLang, 0) ; défaut: fr CloseGadgetList() - + ; --- Frame: Configuration Git (identité + portée) --- Define yCfg = BottomOf(#GID_FrmApp) + #UI_Inset FrameGadget(#GID_FrmConfig, #UI_Inset, yCfg, GadgetWidth(#GID_Panel) - #UI_Inset*2, 170, T("Config.FrameTitle","Configuration Git"), #PB_Frame_Container) @@ -755,45 +818,44 @@ Procedure OpenGUI() SetGadgetState(#GID_CbScope, 0) ButtonGadget(#GID_BtnSaveCfg, GadgetWidth(#GID_FrmConfig) - #UI_Inset - 110, #UI_Inset + 100, 110, #UI_RowH, T("Config.Button.Save","Enregistrer")) CloseGadgetList() - + ; --- Frame: Proxy HTTP(S) --- Define yProxy = BottomOf(#GID_FrmConfig) + #UI_Inset FrameGadget(#GID_FrmProxy, #UI_Inset, yProxy, GadgetWidth(#GID_Panel) - #UI_Inset*2, 260, T("Proxy.FrameTitle","Proxy HTTP / HTTPS"), #PB_Frame_Container) - + ; Activation CheckBoxGadget(#GID_ChkProxy, #UI_Inset + 10, #UI_Inset + 30, 280, #UI_RowH, T("Proxy.Enable","Activer le proxy")) SetGadgetState(#GID_ChkProxy, 0) - + ; --- HTTP row 1 (server/port) TextGadget(#GID_LblHttpSrv, #UI_Inset + 10, #UI_Inset + 70, 100, #UI_RowH, "HTTP serveur") StringGadget(#GID_EdHttpSrv, #UI_Inset + 110, #UI_Inset + 68, 260, #UI_RowH, "") TextGadget(#GID_LblHttpPort, RightOf(#GID_EdHttpSrv) + #UI_Inset, #UI_Inset + 70, 40, #UI_RowH, "Port") StringGadget(#GID_EdHttpPort, RightOf(#GID_LblHttpPort) + #UI_Inset, #UI_Inset + 68, 80, #UI_RowH, "") - + ; --- HTTP row 2 (user/pass) TextGadget(#GID_LblHttpUser, #UI_Inset + 10, #UI_Inset + 105, 100, #UI_RowH, "HTTP login") StringGadget(#GID_EdHttpUser, #UI_Inset + 110, #UI_Inset + 103, 260, #UI_RowH, "") TextGadget(#GID_LblHttpPass, RightOf(#GID_EdHttpUser) + #UI_Inset, #UI_Inset + 105, 70, #UI_RowH, "Password") StringGadget(#GID_EdHttpPass, RightOf(#GID_LblHttpPass) + #UI_Inset, #UI_Inset + 103, 180, #UI_RowH, "") SetGadgetAttribute(#GID_EdHttpPass, #PB_String_Password, #True) - + ; --- HTTPS row 1 (server/port) TextGadget(#GID_LblHttpsSrv, #UI_Inset + 10, #UI_Inset + 145, 100, #UI_RowH, "HTTPS serveur") StringGadget(#GID_EdHttpsSrv, #UI_Inset + 110, #UI_Inset + 143, 260, #UI_RowH, "") TextGadget(#GID_LblHttpsPort, RightOf(#GID_EdHttpsSrv) + #UI_Inset, #UI_Inset + 145, 40, #UI_RowH, "Port") StringGadget(#GID_EdHttpsPort, RightOf(#GID_LblHttpsPort) + #UI_Inset, #UI_Inset + 143, 80, #UI_RowH, "") - + ; --- HTTPS row 2 (user/pass) TextGadget(#GID_LblHttpsUser, #UI_Inset + 10, #UI_Inset + 180, 100, #UI_RowH, "HTTPS login") StringGadget(#GID_EdHttpsUser, #UI_Inset + 110, #UI_Inset + 178, 260, #UI_RowH, "") TextGadget(#GID_LblHttpsPass, RightOf(#GID_EdHttpsUser) + #UI_Inset, #UI_Inset + 180, 70, #UI_RowH, "Password") StringGadget(#GID_EdHttpsPass, RightOf(#GID_LblHttpsPass) + #UI_Inset, #UI_Inset + 178, 180, #UI_RowH, "") SetGadgetAttribute(#GID_EdHttpsPass, #PB_String_Password, #True) - + ; Bouton Appliquer ButtonGadget(#GID_BtnApplyProxy, GadgetWidth(#GID_FrmProxy) - #UI_Inset - 140, #UI_Inset + 215, 140, #UI_RowH, T("Proxy.Apply","Appliquer proxy")) CloseGadgetList() - ; --- End tabs --- CloseGadgetList() @@ -807,12 +869,12 @@ Procedure OpenGUI() ; Initial placement / placement initial ResizeGUI() - ; toolTip aide + ; Tooltips ApplyToolTips() ProcedureReturn #True EndIf - ProcedureReturn #False + ProcedureReturn #False EndProcedure ; ----------------------------------------------------------------------------- @@ -1181,8 +1243,8 @@ EndProcedure Main() ; IDE Options = PureBasic 6.21 (Windows - x64) -; CursorPosition = 1032 -; FirstLine = 1025 +; CursorPosition = 591 +; FirstLine = 521 ; Folding = ------ ; EnableXP ; DPIAware \ No newline at end of file