Page 2 sur 3

Re: WindowMaker

Publié : lun. 24/janv./2011 18:30
par Ar-S
Ba ton prog permet de créer une fenêtre et pureform une fenêtre et des gadgets. Pourquoi ne pas comparer ?
Word fera un document qui ne ressemblera jamais à un document notepad alors que ton interface et japbe peuvent (dans la limite d'une fenêtre certes) donner le même résultat.
Mais bon, autant pour moi ne te brusque pas hein :wink:

Re: WindowMaker

Publié : lun. 24/janv./2011 18:41
par Chris
Je ne me brusque pas, ni moi, ni personne d'autre.

Que tu aimes ou pas ce programme, que tu l'utilise ou pas, c'est ton problème, pas le mien. Personnellement, je m'en tamponne à un point que tu n'imagine même pas. :mrgreen:

Re: WindowMaker

Publié : lun. 24/janv./2011 18:47
par Ar-S
Chris a écrit :Je ne me brusque pas, ni moi, ni personne d'autre.
Personnellement, je m'en tamponne à un point que tu n'imagine même pas. :mrgreen:
Oh si j'imagine, et heureusement que tu t'en tamponnes, manquerait plus que ça :mrgreen: :mrgreen:

Re: WindowMaker

Publié : lun. 24/janv./2011 19:24
par venom
Bonjour,

L'idée est bonne :) fallait y penser. :wink:






@++

Re: WindowMaker

Publié : mer. 26/janv./2011 11:01
par jbernard13
Bonjour Chris

tu as fait un trés bon logiciel , j'adore .... :D

Re: WindowMaker

Publié : mer. 26/janv./2011 13:42
par Chris
J'ai un peu retravaillé le code pour en faire quelque chose d'un peu moins "brouillon". (C'est vrai que c'était un peu le foutoir dans ce code :oops: )
J'ai aussi ajouté la mémorisation de la position de la fenêtre.
La fenêtre est redimensionnable pour pouvoir afficher la totalité du code

Téléchargement ici

Re: WindowMaker

Publié : mer. 26/janv./2011 16:54
par Backup
Merci , je vais essayer ça :)

Re: WindowMaker

Publié : mer. 26/janv./2011 17:30
par jbernard13
Merci Chris

Re: WindowMaker

Publié : mer. 26/janv./2011 22:17
par falsam
Merci Chris de faire partager ce code qui trouve très bien sa place quand on a besoin que de ce qu'il sait faire. Peut être que tu pourrez remplacer le champ Constante par Id Gadget.

Re: WindowMaker

Publié : mer. 26/janv./2011 22:28
par Chris
falsam a écrit :Merci Chris de faire partager ce code qui trouve très bien sa place quand on a besoin que de ce qu'il sait faire. Peut être que tu pourrez remplacer le champ Constante par Id Gadget.
Oui, j'ai pas trop réfléchi quand j'ai mis ce label.

C'est vrai que "Id Window" serait plus approprié. (Id Gadget, c'est bon pour un gadget pas pour une fenêtre)

Mais bon... vous avez tous le code, alors ...

Re: WindowMaker

Publié : sam. 29/janv./2011 19:12
par GeBonet
Merci pour ce code, ça peux servir 8)
Tiens c'est tellement vrai que j'y ai ajouté un petit rien.
- Création d'un menu standard (base de) et la "status barre". Deux cases à cocher ou non...

Code : Tout sélectionner

; ==============================
; **** Création de fenêtres ****
; ==============================
;
Global Auteur$
Auteur$="Grand Chris & un petit peu GeBonet"
;
;- Enumerations
;{/ Fenêtres
Enumeration
  #Window_Main
EndEnumeration
;/ Gadgets
Enumeration
  #CheckBox_SystemMenu
  #CheckBox_MinimizeGadget
  #CheckBox_MaximizeGadget
  #CheckBox_SizeGadget
  #CheckBox_Invisible
  #CheckBox_TitleBar
  #CheckBox_BorderLess
  #CheckBox_Tool
  #CheckBox_ScreenCentered
  #CheckBox_WindowCentered
  #CheckBox_Maximize
  #CheckBox_Minimize
  #CheckBox_NoGadgets
  ;
  #CheckBox_Smart
  #CheckBox_Bound
  #CheckBox_Loop
  #CheckBox_Menus
  #CheckBox_Status
  
  #Button_OnPlace
  #Button_Cancel
  #Button_NewTab
  
  #String_W
  #String_H
  #String_X
  #String_Y
  #String_WindowIdent
  #String_Bound_W_Mini
  #String_Bound_H_Mini
  #String_Bound_W_Maxi
  #String_Bound_H_Maxi
  #String_Titre
  #String_StatusChamp
  
  #Edit_Code
  
  #Frame3D_Attributs
  #Frame3D_Taille
  #Frame3D_Constante
  #Frame3D_TailleBound
  #Frame3D_Action
  #Frame3D_Titre
  #Frame3D_Options
  #Frame3D_Loop
  #Frame3D_Menus
  #Frame3D_Status
  
  #Text_Taille
  #Text_Position
  #Text_Largeur
  #Text_Hauteur
  #Text_PosX
  #Text_PosY
  #Text_TailleMin
  #Text_TailleMax
  #Text_LargeurMin
  #Text_HauteurMin
  #Text_LargeurMax
  #Text_HauteurMax
  #Text_StatusChamp
EndEnumeration
;/ Polices
Enumeration
  #Font
  #LF=10
EndEnumeration;}
;{- Constantes spéciales
;/ Constantes utilisées pour le transfert sous jaPBe
#WMCD_OpenFile            = 1 ; Ouvre un fichier dans une nouvelle page
#WMCD_InsertText          = 2 ; Insère le texte à la position du curseur.
#wmCD_ReplaceCompleteText = 3 ; Remplace la totalité du texte
#wmcd_ReplaceCurrentLine  = 4 ; Remplace la ligne ou se trouve le curseur
#wmcd_NewText             = 5 ; Ouvre un nouvel onglet, et lui passe le texte
;}
;{- Variables Globales
Global Button_OnPlace_Tooltip
Global Button_NewTab_Tooltip
Global Smart$
Global RunOneWin = FindWindow_(@"WindowClass_0", @"jaPBe-RunOneWindow")
Global PosX, PosY, On
;}
;{- Tableaux, Listes et Structures
Global Dim Chaines.s(1, 12)
Chaines(1,0)  = "#PB_Window_SystemMenu|"
Chaines(1,1)  = "#PB_Window_MinimizeGadget|"
Chaines(1,2)  = "#PB_Window_MaximizeGadget|"
Chaines(1,3)  = "#PB_Window_SizeGadget|"
Chaines(1,4)  = "#PB_Window_Invisible|"
Chaines(1,5)  = "#PB_Window_TitleBar|"
Chaines(1,6)  = "#PB_Window_BorderLess|"
Chaines(1,7)  = "#PB_Window_Tool|"
Chaines(1,8)  = "#PB_Window_ScreenCentered|"
Chaines(1,9)  = "#PB_Window_WindowCentered|"
Chaines(1,10) = "#PB_Window_Maximize|"
Chaines(1,11) = "#PB_Window_Minimize|"
Chaines(1,12) = "#PB_Window_NoGadgets|"
;}
;- Creation tooltip
Procedure GadgetBalloonToolTip(WindowNumber.l, GadgetNumber.l, Text.s)
  Protected Tooltip.l, Balloon.TOOLINFO
  Tooltip = CreateWindowEx_(0, "ToolTips_Class32", "", #WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON, 0, 0, 0, 0, WindowID(WindowNumber), 0, GetModuleHandle_(0), 0)
  SendMessage_(Tooltip, #TTM_SETTIPTEXTCOLOR, GetSysColor_(#COLOR_INFOTEXT), 0)
  SendMessage_(Tooltip, #TTM_SETTIPBKCOLOR, GetSysColor_(#COLOR_INFOBK), 0)
  SendMessage_(Tooltip, #TTM_SETMAXTIPWIDTH, 0, 180)
  Balloon\cbSize = SizeOf(TOOLINFO)
  Balloon\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
  If IsGadget(GadgetNumber)
    Balloon\hwnd = GadgetID(GadgetNumber)
    Balloon\uId = GadgetID(GadgetNumber)
  Else
    Balloon\hwnd = GadgetNumber
    Balloon\uId = GadgetNumber
  EndIf
  Balloon\lpszText = @Text
  SendMessage_(Tooltip, #TTM_ADDTOOL, 0, @Balloon)
  ProcedureReturn Tooltip
EndProcedure
Procedure ChangeGadgetBalloonToolTip(Tooltip.l, GadgetNumber.l, Text.s)
  Protected Balloon.TOOLINFO
  Balloon\cbSize = SizeOf(TOOLINFO)
  Balloon\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
  If IsGadget(GadgetNumber)
    Balloon\hwnd = GadgetID(GadgetNumber)
    Balloon\uId = GadgetID(GadgetNumber)
  Else
    Balloon\hwnd = GadgetNumber
    Balloon\uId = GadgetNumber
  EndIf
  Balloon\lpszText = @Text
  SendMessage_(Tooltip, #TTM_ADDTOOL, 0, @Balloon)
EndProcedure
Procedure FreeBalloonTooltip(Tooltip.l)
  DestroyWindow_(Tooltip.l)
EndProcedure 
; - Procédures
;/ Création de la fenêtre
Procedure OpenWin_Main()
  ;
  ;If OpenWindow(#Window_Main, PosX, PosY, 465, 465, "WindowMaker", #PB_Window_Tool|#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_WindowCentered|#PB_Window_SizeGadget)
  If OpenWindow(#Window_Main, PosX, PosY, 465, 550, "WindowMaker", #PB_Window_Tool|#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_WindowCentered|#PB_Window_SizeGadget)
    WindowBounds(#Window_Main, 465, 465, #PB_Ignore, 600)
    StickyWindow(#Window_Main, 1)
    ;
    Font = LoadFont(#Font, "Courrier", 8, #PB_Font_HighQuality)
    ;
    CheckBoxGadget(#CheckBox_SystemMenu,     15,  80,100, 20, "SystemMenu")
    CheckBoxGadget(#CheckBox_Tool,          120,  80,100, 20, "Tool")
    CheckBoxGadget(#CheckBox_MinimizeGadget, 15, 105,100, 20, "MinimizeGadget")
    CheckBoxGadget(#CheckBox_ScreenCentered,120, 105,100, 20, "ScreenCentered ")
    CheckBoxGadget(#CheckBox_MaximizeGadget, 15, 130,100, 20, "MaximizeGadget")
    CheckBoxGadget(#CheckBox_WindowCentered,120, 130,100, 20, "WindowCentered ")
    CheckBoxGadget(#CheckBox_SizeGadget,     15, 155,100, 20, "SizeGadget")
    CheckBoxGadget(#CheckBox_Maximize,      120, 155,100, 20, "Maximize")
    CheckBoxGadget(#CheckBox_Smart,         240, 155, 90, 20, "SmartWindow")
    CheckBoxGadget(#CheckBox_Bound,         365, 155, 90, 20, "WindowBound")
    CheckBoxGadget(#CheckBox_Invisible,      15, 180,100, 20, "Invisible")
    CheckBoxGadget(#CheckBox_Minimize,      120, 180,100, 20, "Minimize")
    CheckBoxGadget(#CheckBox_TitleBar,       15, 205,100, 20, "TitleBar")
    CheckBoxGadget(#CheckBox_NoGadgets,     120, 205,100, 20, "NoGadgets")
    CheckBoxGadget(#CheckBox_BorderLess,     15, 230,100, 20, "BorderLess")
    CheckBoxGadget(#CheckBox_Loop,          135, 280, 90, 20, "Inclure Boucle")
    ;
    CheckBoxGadget(#CheckBox_Menus,100,325,100,20,"Menu O/N)")
    CheckBoxGadget(#CheckBox_Status,240,325,90,20,"Status O/N")
    ;
    ButtonGadget(#Button_NewTab,  240, 280, 75, 20, "", #PB_Button_Default)
    ButtonGadget(#Button_OnPlace, 315, 280, 75, 20, "Sur place")
    ButtonGadget(#Button_Cancel,  400, 280, 55, 20, "Quitter")
    ;
    If RunOneWin
      SetGadgetText(#Button_NewTab, "Nouvel onglet")
    Else
      DisableGadget(#Button_OnPlace, 1)
      SetGadgetText(#Button_NewTab, "Copier")
    EndIf
    ;
    StringGadget(#String_W, 240, 105, 45, 20, "", #ES_CENTER)
    StringGadget(#String_H, 300, 105, 45, 20, "", #ES_CENTER)
    StringGadget(#String_X, 355, 105, 45, 20, "", #ES_CENTER)
    StringGadget(#String_Y, 410, 105, 45, 20, "", #ES_CENTER)
    StringGadget(#String_WindowIdent, 10, 280, 110, 20, "")
    StringGadget(#String_Bound_W_Mini, 240, 230, 45, 20, "")
    StringGadget(#String_Bound_H_Mini, 300, 230, 45, 20, "")
    StringGadget(#String_Bound_W_Maxi, 355, 230, 45, 20, "")
    StringGadget(#String_Bound_H_Maxi, 410, 230, 45, 20, "")
    StringGadget(#String_Titre, 10, 25, 445, 20, "")
    ;
    StringGadget(#String_StatusChamp,400,325,50, 20, "")
    ;
    ; EditorGadget(#Edit_Code, 5, 320, 455, 140, #PB_Editor_ReadOnly)
    EditorGadget(#Edit_Code, 5, 355, 455, 190, #PB_Editor_ReadOnly)
    SetGadgetFont(#Edit_Code, FontID(#Font))
    SetGadgetColor(#Edit_Code, #PB_Gadget_BackColor , $00E1FFFF)
    ; 
    Frame3DGadget(#Frame3D_Attributs, 5, 55, 225, 200, "Attributs de la fenêtre")
    Frame3DGadget(#Frame3D_Taille, 235, 55, 225, 75, "Taille - Position de la fenêtre")
    Frame3DGadget(#Frame3D_Constante, 5, 260, 120, 50, "Constante")
    Frame3DGadget(#Frame3D_Loop, 130, 260, 100, 50, "Boucle")
    Frame3DGadget(#Frame3D_TailleBound, 235, 185, 225, 70, "Taille Mini/Maxi de la fenêtre")
    Frame3DGadget(#Frame3D_Action, 235, 260, 160, 50, "Coller dans")
    Frame3DGadget(#Frame3D_Titre, 5, 5, 455, 45, "Titre de la fenêtre")
    Frame3DGadget(#Frame3D_Options, 235, 135, 225, 45, "Options")
    ; ----------------------------------------------------------------
    Frame3DGadget(#Frame3D_Menus,   5, 310, 225,40, "Menus Standard")
    Frame3DGadget(#Frame3D_Status,235, 310, 225,40, "Status Barre")
    ;
    ; ---------------------------------------------------------------- 
    TextGadget(#Text_Taille, 245, 75, 100, 15, "Taille", #PB_Text_Center)
    TextGadget(#Text_Position, 355, 75, 100, 15, "Position", #PB_Text_Center)
    TextGadget(#Text_Largeur, 245, 90, 50, 15, "Largeur", #PB_Text_Center)
    TextGadget(#Text_Hauteur, 295, 90, 50, 15, "Hauteur", #PB_Text_Center)
    TextGadget(#Text_PosX, 355, 90, 45, 15, "X", #PB_Text_Center)
    TextGadget(#Text_PosY, 410, 90, 45, 15, "Y", #PB_Text_Center)
    TextGadget(#Text_TailleMin, 245, 200, 100, 15, "Taille mini", #PB_Text_Center)
    TextGadget(#Text_TailleMax, 355, 200, 100, 15, "Taille maxi", #PB_Text_Center)
    TextGadget(#Text_LargeurMin, 240, 215, 45, 15, "Largeur", #PB_Text_Center)
    TextGadget(#Text_HauteurMin, 300, 215, 45, 15, "Hauteur")
    TextGadget(#Text_LargeurMax, 355, 215, 45, 15, "Largeur")
    TextGadget(#Text_HauteurMax, 410, 215, 45, 15, "Hauteur")
    ;
    TextGadget(#Text_StatusChamp,330,327,65, 20,"Nb. Champs")
    ; 
    For i =#String_Bound_W_Mini To #String_Bound_H_Maxi
      DisableGadget(i, 1)
    Next
    DisableGadget(#CheckBox_Status, 1)
    DisableGadget(#Text_StatusChamp, 1)
    DisableGadget(#String_StatusChamp, 1)
    DisableGadget(#CheckBox_Bound, 1)
    ; 
    AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Return, #Button_NewTab)
    AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Control|#PB_Shortcut_Return, #Button_OnPlace)
    ; 
    Button_OnPlace_Tooltip = GadgetBalloonToolTip(#Window_Main, #Button_OnPlace, "Coller la fenêtre à la position du curseur."+Chr(10)+Chr(10)+"[Ctrl]+[Entrée]")
    Button_NewTab_Tooltip  = GadgetBalloonToolTip(#Window_Main, #Button_NewTab, "Coller dans un nouvel onglet."+Chr(10)+Chr(10)+"[Entrée]")
    ; 
    CheckBox_BorderLess_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_BorderLess ,"Créer une fenêtre sans bordures" )
    CheckBox_Bound_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Bound , "Définit les dimensions maxi et mini de la fenêtre" )
    CheckBox_Invisible_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Invisible ,"Créer une fenêtre invisible" )
    CheckBox_Loop_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Loop , "Inclure la boucle dans le code")
    CheckBox_Maximize_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Maximize , "Ouvrir la fenêtre en mode maximisé")
    CheckBox_MaximizeGadget_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_MaximizeGadget , "Ajouter le bouton 'Maximiser' en haut de la fenêtre")
    CheckBox_Minimize_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Minimize , "Ouvrir la fenêtre en mode Minimisé" )
    CheckBox_MinimizeGadget_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_MinimizeGadget , "Ajouter le bouton 'Minimiser' en haut de la fenêtre")
    CheckBox_NoGadgets_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_NoGadgets , "Créer une fenêtre sans gadgets")
    CheckBox_ScreenCentered_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_ScreenCentered , "Créer une fenêtre centrée dans l'écran")
    CheckBox_SizeGadget_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_SizeGadget , "Créer une fenêtre redimensionnable")
    CheckBox_Smart_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Smart , "Tente d'empecher le scintillement de la fenêtre lors des redimensionnements" )
    CheckBox_SystemMenu_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_SystemMenu , "Créer une fenêtre avec le menu système")
    CheckBox_TitleBar_TT = GadgetBalloonToolTip( #Window_Main,#CheckBox_TitleBar , "Créer une fenêtre avec une barre de titre")
    CheckBox_Tool_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Tool , "Créer une fenêtre avec une barre de titre réduite")
    CheckBox_Window_Menu = GadgetBalloonToolTip(#Window_Main ,#CheckBox_WindowCentered , "Créer une fenêtre centrée dans la fenêtre mère")
    ; 
    CheckBox_WindowCentered_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Menus, "Créer un Menu Standard")
    CheckBox_WindowCentered_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Status,"Créer un Statud Barre")
    CheckBox_WindowCentered_TT = GadgetBalloonToolTip(#Window_Main ,#String_StatusChamp,"Nombre de champs"+Chr(#LF)+"pour le status barre")
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf
  
EndProcedure
;/ Création et affichage du code
Procedure BuildString()
  ;/ Initialisation de l'affichage
  Option$ = ""
  ClearGadgetItems(#Edit_Code)
  ;
  ;/ Création de la chaine d'options
  For i = #CheckBox_SystemMenu To #CheckBox_NoGadgets
    If Chaines(0,i) = "1"
      Option$ + Chaines(1,i) 
    EndIf
  Next
  ;
  If Right(Option$, 1) = "|"
    Option$ = Left(Option$, Len(Option$)-1) 
  EndIf
  ;
  Ident$ = GetGadgetText(#String_WindowIdent)
  If Left(Ident$,1) <> "#"
    Ident$ = "#"+Ident$
  EndIf
  ;
  If Ident$ = "#" : Ident$ = "#Win_0" : EndIf
  ;
  X$ = GetGadgetText(#String_X) : If X$ = "" : X$ = "#PB_Ignore" : EndIf
  Y$ = GetGadgetText(#String_Y) : If Y$ = "" : Y$ = "#PB_Ignore" : EndIf
  W$ = GetGadgetText(#String_W) : If W$ = "" : W$ = "#PB_Ignore" : EndIf
  H$ = GetGadgetText(#String_H) : If H$ = "" : H$ = "#PB_Ignore" : EndIf
  ;
  Titre$ = Chr(34)+GetGadgetText(#String_Titre)+Chr(34)
  ;
  Temp$ = Ident$+", "+X$+", "+Y$+", "+W$+", "+H$+", "+Titre$+", "+Option$
  If Right(Trim(Temp$), 1) = "," : Temp$ = Left(Temp$, Len(Temp$)-2) : EndIf
  ; 
  Fenetre$ = "If OpenWindow("+Temp$+")"
  ;/ Création de la commande "WindowBound()"
  If GetGadgetState(#CheckBox_Bound) = 1
    BWMax$ = GetGadgetText(#String_Bound_W_Maxi) : If BWMax$ = "" : BWMax$ = "#PB_Ignore" : EndIf
    BHMax$ = GetGadgetText(#String_Bound_H_Maxi) : If BHMax$ = "" : BHMax$ = "#PB_Ignore" : EndIf
    BWMin$ = GetGadgetText(#String_Bound_W_Mini) : If BWMin$ = "" : BWMin$ = "#PB_Ignore" : EndIf
    BHMin$ = GetGadgetText(#String_Bound_H_Mini) : If BHMin$ = "" : BHMin$ = "#PB_Ignore" : EndIf
    Bound$ = "WindowBounds("+Ident$+", "+BWMin$+", "+BHMin$+", "+BWMax$+", "+BHMax$+")" 
  ElseIf GetGadgetState(#CheckBox_Bound) = 0
    Bound$ = ""
  EndIf
  ;/ Création de la commande "SmartWindowRefresh()"
  If GetGadgetState(#CheckBox_Smart) = 1
    Smart$ = "SmartWindowRefresh("+ Ident$+", 1)"
  ElseIf GetGadgetState(#CheckBox_Smart) = 0
    Smart$ = ""
  EndIf
  ;/ Affichage du code
  Date$ = FormatDate("%dd/%mm/%yyyy", Date())
  Time$ = FormatDate("%hh:%ii:%ss", Date())
  
  AddGadgetItem(#Edit_Code, -1,"; ==================================================")
  AddGadgetItem(#Edit_Code, -1,"; Code crée par : "+ Auteur$)
  AddGadgetItem(#Edit_Code, -1,"; Le : "+Date$+" a "+Time$) 
  AddGadgetItem(#Edit_Code, -1,"; ==================================================")
  AddGadgetItem(#Edit_Code, -1, "Enumeration")
  AddGadgetItem(#Edit_Code, -1, "  "+Ident$)
  AddGadgetItem(#Edit_Code, -1, "EndEnumeration")
  AddGadgetItem(#Edit_Code, -1, "")
  ; -----------------------------------------------------
  If On=1
    AddGadgetItem(#Edit_Code, -1, "Enumeration")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_titre_FICHIER")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Nouveau")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Ouvrir")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Sauver")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Sortie")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_titreEDIT")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Copier")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Coller")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Effacer")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Chercher")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_titreAIDES")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_Aides")
    AddGadgetItem(#Edit_Code, -1, "  #MenuBar_Form1_About")
    AddGadgetItem(#Edit_Code, -1, "EndEnumeration")
    AddGadgetItem(#Edit_Code, -1, "")
  EndIf   
  ; ----------------------------------------------------
  AddGadgetItem(#Edit_Code, -1, Fenetre$)
  ;
  If Bound$ <> ""
    AddGadgetItem(#Edit_Code, -1, Bound$)
  EndIf
  If Smart$ <> ""
    AddGadgetItem(#Edit_Code, -1, Smart$)
  EndIf
  ;
  AddGadgetItem(#Edit_Code, -1, "")
  AddGadgetItem(#Edit_Code, -1, "")
  AddGadgetItem(#Edit_Code, -1, "Endif")
  AddGadgetItem(#Edit_Code, -1, "")
  ;
  If On=1
    AddGadgetItem(#Edit_Code, -1, "; ---- Menus ---------")
    AddGadgetItem(#Edit_Code, -1, "")
    AddGadgetItem(#Edit_Code, -1, "MenuBar_Form1=CreateMenu(#PB_Any,WindowID(#Win_0))")
    ;
    AddGadgetItem(#Edit_Code, -1, "MenuTitle("+Chr(34)+"Fichier"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Nouveau,"+Chr(34)+"Nouveau"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Ouvrir,"+Chr(34)+"Ouvrir"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Sauver,"+Chr(34)+"Sauver"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuBar()")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Sortie,"+Chr(34)+"Sortie"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "MenuTitle("+Chr(34)+"Editer"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Copier,"+Chr(34)+"Copier"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Coller,"+Chr(34)+"Coller"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Effacer,"+Chr(34)+"Effacer"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Chercher,"+Chr(34)+"Chercher"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "MenuTitle("+Chr(34)+"Aides"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Aides,"+Chr(34)+"Aides"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "  MenuItem(#MenuBar_Form1_Coller,"+Chr(34)+"A Propos"+Chr(34)+")")
    AddGadgetItem(#Edit_Code, -1, "")
    If GetGadgetState(#CheckBox_Status)
      AddGadgetItem(#Edit_Code, -1, "; ---- Status barre -------------------")
      AddGadgetItem(#Edit_Code, -1, "StatusBar_Form1=CreateStatusBar(#PB_Any,WindowID(#Win_0))")
      Nb=Val(GetGadgetText(#String_StatusChamp))
      If Nb<>0
        For i=1 To Nb
          AddGadgetItem(#Edit_Code, -1, "  AddStatusBarField(100)")
        Next i
      EndIf  
      AddGadgetItem(#Edit_Code, -1, "")
    EndIf  
  EndIf
  ; 
  AddGadgetItem(#Edit_Code, -1, "; ---- Boucle --------------------------")
  AddGadgetItem(#Edit_Code, -1, "")
  If GetGadgetState(#CheckBox_Loop ) = 1
    AddGadgetItem(#Edit_Code, -1, "quitte=0")
    AddGadgetItem(#Edit_Code, -1, "Repeat")
    AddGadgetItem(#Edit_Code, -1, "  EventID  =WaitWindowEvent()")
    AddGadgetItem(#Edit_Code, -1, "  MenuID   =EventMenu()")
    AddGadgetItem(#Edit_Code, -1, "  GadgetID =EventGadget()")
    AddGadgetItem(#Edit_Code, -1, "  WindowID =EventWindow()")
    AddGadgetItem(#Edit_Code, -1, "")
    AddGadgetItem(#Edit_Code, -1, "  Select EventID")
    AddGadgetItem(#Edit_Code, -1, "    Case #PB_Event_CloseWindow")
    AddGadgetItem(#Edit_Code, -1, "       If WindowID=Window_Form1")
    AddGadgetItem(#Edit_Code, -1, "          quitte=1")
    AddGadgetItem(#Edit_Code, -1, "       EndIf")   
    AddGadgetItem(#Edit_Code, -1, "")
    ; ----------- Cas Menu -----------------------
    If On=1
      AddGadgetItem(#Edit_Code, -1,"    Case #PB_Event_Menu")
      AddGadgetItem(#Edit_Code, -1,"     Select MenuID")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Nouveau")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Ouvrir")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Sauver")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Sortie")
      AddGadgetItem(#Edit_Code, -1,"             quitte=1")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Copier")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Coller")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Effacer")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Chercher")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_Aides")
      AddGadgetItem(#Edit_Code, -1,"        Case #MenuBar_Form1_About")
      AddGadgetItem(#Edit_Code, -1,"     EndSelect")
    EndIf  
    ; 
    AddGadgetItem(#Edit_Code, -1, "")
    AddGadgetItem(#Edit_Code, -1, "    Case #PB_Event_Gadget")
    AddGadgetItem(#Edit_Code, -1, "      Select GadgetID")
    AddGadgetItem(#Edit_Code, -1, "")
    AddGadgetItem(#Edit_Code, -1, "        ; Votre code selection gadget <ici>") 
    AddGadgetItem(#Edit_Code, -1, "")
    AddGadgetItem(#Edit_Code, -1, "      EndSelect")
    AddGadgetItem(#Edit_Code, -1, "")
    AddGadgetItem(#Edit_Code, -1, "  EndSelect")
    AddGadgetItem(#Edit_Code, -1, "Until quitte")
    AddGadgetItem(#Edit_Code, -1, "End")
    AddGadgetItem(#Edit_Code, -1, ";>>>>>>> =========== FIN ========== <<<<<<<")
    ; ----- Fin de Loop ---------
  EndIf
  ;
EndProcedure
;/ Transfert des données sous jaPBe
Procedure SendDatasToEditor(MainWin, Text$, Mode.l)
  ; RunOneWin = FindWindow_(@"WindowClass_0", @"jaPBe-RunOneWindow")
  If RunOneWin
    If Text$
      cd.COPYDATASTRUCT
      cd\dwData = Mode
      cd\cbData = Len(Text$)+1
      cd\lpData = @Text$
      SendMessage_(RunOneWin, #WM_COPYDATA, MainWin, cd)  
    EndIf
  Else
    ClearClipboard()
    SetClipboardText(Text$)
    MessageRequester("Terminé", "jaPBe n'a pas été détecté." + Chr(10) + "Les données ont été placées dans le presse-papier.", #MB_OK|#MB_ICONWARNING)
  EndIf
EndProcedure
;/ Sauvegarde de la position de la fenêtre
Procedure SavePref()
  If CreatePreferences(GetCurrentDirectory()+"WindowMaker.ini")
    PosX = WindowX(#Window_Main)
    PosY = WindowY(#Window_Main)
    
    PreferenceGroup("Position")
    WritePreferenceInteger("PosX", PosX)
    WritePreferenceInteger("PosY", PosY)
    ClosePreferences()
  EndIf
  
EndProcedure
;/ Rappel de la position précédente de la fenêtre
Procedure LoadPref()
  If OpenPreferences(GetCurrentDirectory()+"WindowMaker.ini")
    PreferenceGroup("Position")
    PosX = ReadPreferenceInteger("PosX", 800)
    PosY = ReadPreferenceInteger("PosY", 400)
    ClosePreferences()
  EndIf
EndProcedure
;/ Gestion des messages de l'application
Procedure WinCallback(hWin, Msge, wParam, lParam)
  Ret = #PB_ProcessPureBasicEvents
  Select Msge
    Case #WM_SIZE
      ResizeGadget(#Edit_Code, #PB_Ignore, #PB_Ignore, WindowWidth(#Window_Main) - 10, WindowHeight(#Window_Main) - 325)
  EndSelect
  ProcedureReturn Ret
EndProcedure
;}
;{- Initialisation du programme
LoadPref()
If OpenWin_Main() = 0
  End
Else
  BuildString()
  SetWindowCallback(@WinCallback())
EndIf
;}
On=0
;{- Boucle
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      SavePref()
      Quit = #True
    Case #PB_Event_Menu
      Select EventMenu()
          ;/ Raccourcis clavier
        Case #Button_NewTab
          SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, 0, -1)
          StringToSend$ = GetGadgetText(#Edit_Code)
          SendDatasToEditor(WindowID(#Window_Main), Trim(StringToSend$), #wmcd_NewText)
          SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, -1, -1)
      EndSelect
      
    Case #PB_Event_Gadget
      Select EventGadget()
          ;{/ Cases à cocher Paramètres
        Case #CheckBox_SystemMenu
          Chaines(0,0) = Str(GetGadgetState(#CheckBox_SystemMenu))
          BuildString()
          
        Case #CheckBox_MinimizeGadget
          Chaines(0,1) = Str(GetGadgetState(#CheckBox_MinimizeGadget))
          BuildString()
          
        Case #CheckBox_MaximizeGadget
          Chaines(0,2) = Str(GetGadgetState(#CheckBox_MaximizeGadget))
          BuildString()
          
        Case #CheckBox_SizeGadget
          Chaines(0,3) = Str(GetGadgetState(#CheckBox_SizeGadget))
          DisableGadget(#CheckBox_Bound, (Not GetGadgetState(#CheckBox_SizeGadget)))
          BuildString()
          
        Case #CheckBox_Invisible
          Chaines(0,4) = Str(GetGadgetState(#CheckBox_Invisible))
          BuildString()
          
        Case #CheckBox_TitleBar
          Chaines(0,5) = Str(GetGadgetState(#CheckBox_TitleBar))
          BuildString()
          
        Case #CheckBox_BorderLess
          Chaines(0,6) = Str(GetGadgetState(#CheckBox_BorderLess))
          BuildString()
          
        Case #CheckBox_Tool
          Chaines(0,7) = Str(GetGadgetState(#CheckBox_Tool))
          BuildString()
          
        Case #CheckBox_ScreenCentered
          Chaines(0,8) = Str(GetGadgetState(#CheckBox_ScreenCentered))
          BuildString()
          
        Case #CheckBox_WindowCentered
          Chaines(0,9) = Str(GetGadgetState(#CheckBox_WindowCentered))
          BuildString()
          
        Case #CheckBox_Maximize
          Chaines(0,10) = Str(GetGadgetState(#CheckBox_Maximize))
          BuildString()
          
        Case #CheckBox_Minimize
          Chaines(0,11) = Str(GetGadgetState(#CheckBox_Minimize))
          BuildString()
          
        Case #CheckBox_NoGadgets
          Chaines(0,12) = Str(GetGadgetState(#CheckBox_NoGadgets))
          BuildString()
          ;}
          
          ;{/ Cases à cocher Fonctions additionnelles
        Case #CheckBox_Smart
          BuildString()
          
        Case #CheckBox_Bound
          For i = #String_Bound_W_Mini To #String_Bound_H_Maxi
            DisableGadget(i,(Not GetGadgetState(#CheckBox_Bound)) )
          Next
          If GetGadgetState(#CheckBox_Bound) = 1 : SetActiveGadget(#String_Bound_W_Mini) : EndIf
          BuildString()
          
        Case #CheckBox_Loop
          BuildString()
          ;}
          
          ;{/ Strings
        Case #String_W
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_H
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_X
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_Y
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_WindowIdent
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_Bound_W_Mini
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_Bound_H_Mini
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_Bound_W_Maxi
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_Bound_H_Maxi
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          
        Case #String_Titre
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf
          ; --------------------------------------------------------------
        Case #CheckBox_Menus
          If On=0
            DisableGadget(#CheckBox_Status, 0)
            DisableGadget(#Text_StatusChamp, 0)
            DisableGadget(#String_StatusChamp,0)
            On=1:BuildString()
          Else 
            DisableGadget(#CheckBox_Status, 1)
            DisableGadget(#Text_StatusChamp, 1)
            DisableGadget(#String_StatusChamp,1)
            On=0:BuildString()
          EndIf
          If EventType() = #PB_EventType_Change
            BuildString()
          EndIf

        Case #CheckBox_Status
          If On=1
            BuildString()
          EndIf
          ;}; --------------------------------------------------------------
          ;{/ Boutons
        Case #Button_OnPlace
          SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, 0, -1)
          StringToSend$ = GetGadgetText(#Edit_Code)
          SendDatasToEditor(WindowID(#Window_Main), Trim(StringToSend$), #WMCD_InsertText)
          SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, -1, -1)
          
        Case #Button_NewTab
          SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, 0, -1)
          StringToSend$ = GetGadgetText(#Edit_Code)
          SendDatasToEditor(WindowID(#Window_Main), Trim(StringToSend$), #wmcd_NewText)
          SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, -1, -1)
          
        Case #Button_Cancel
          SavePref()
          Quit = #True
          ;}
      EndSelect
  EndSelect
Until Quit
;}
End
; IDE Options = PureBasic 4.51 (Windows - x86)
; CursorPosition = 277
; FirstLine = 255
; IDE Options = PureBasic 4.51 (Windows - x86)
; CursorPosition = 362
; FirstLine = 346
Voilà, c'est tout.
Et merci encore :lol:

Re: WindowMaker

Publié : sam. 29/janv./2011 19:33
par Chris
Pas mal, mais soit c'est trop, soit c'est pas assez.
Quitte à ajouter les menus, autant faire en sorte qu'on puisse choisir ce qu'on veut y mettre : Libellé du titre, libellés des menus, nombre de rubriques, etc, etc...
C'est l'esprit du programme initial

Pareil pour la barre d'état. On peut choisir le nombre de cases, mais pas leur largeur.

Bref, t'as encore du boulot :mrgreen:

PS : La barre d'état est verrouillée si on ne crée pas de menu. Ca ne devrait pas. :| :wink:

Re: WindowMaker

Publié : dim. 30/janv./2011 0:23
par GeBonet
Chris a écrit :Pas mal, mais soit c'est trop, soit c'est pas assez.
Quitte à ajouter les menus, autant faire en sorte qu'on puisse choisir ce qu'on veut y mettre : Libellé du titre, libellés des menus, nombre de rubriques, etc, etc...
C'est l'esprit du programme initial
Pareil pour la barre d'état. On peut choisir le nombre de cases, mais pas leur largeur.
Bref, t'as encore du boulot :mrgreen:
PS : La barre d'état est verrouillée si on ne crée pas de menu. Ça ne devrait pas. :| :wink:
C'est vrai, et d'accord avec toi, du moins en partie.
Tout comme toi, ce n'est pas fait pour être complet et comme pour l'original, c'est seulement pour donner une trame de base sans plus.
En réalité je n'ai ajouté que deux case a cocher pour avoir un menu et une barre d'état quand on demande un menu... Mais rien n'empêche de la rendre indépendante
Le reste = Avec du copier/coller/supprimer permet très vite de compléter ou d'adapter.
Soit avoir rapidement un base sans trop avoir à coder. :mrgreen: Et de fait si on veux plus que ça, "PureForm" ou "Visual Designer" font l'affaire. :wink:
Encore merci pour l'idée de départ.

PS: En réalité, j'aimerais travailler sur un RAD dans lequel j'intégrerais un SGBDR style Access mais totalement sous PB (libéré des SQL, Lite ou moins Lite).
Pour les développeurs, avec le RAD on crée le corps de l'application : Menus, Fenêtre, Fichiers et relations.
Et avec des librairies open sources d'exploitation du SGDGR sous PB, chacun peux réaliser ses spécificités.
En gros et raccourcis, un "PureForm" mais étendu avec gestion de fichier relationnel.
J'ai déjà fait ça sous DOS et a existé de 1987-1994... Mais voilà, pas trop le courage de m'y remettre, trop vieux ? Peut-être !
Alors de temps en temps, je fait un bout de quelques chose... Qui sais, un jours, j'en aurais peut-être suffisamment des bouts qui bout a bout, ferons ce que je veux :lol:

Re: WindowMaker

Publié : dim. 30/janv./2011 15:40
par Philippe_GEORGES
GeBonet a écrit :
Chris a écrit :Pas mal, mais soit c'est trop, soit c'est pas assez.
Quitte à ajouter les menus, autant faire en sorte qu'on puisse choisir ce qu'on veut y mettre : Libellé du titre, libellés des menus, nombre de rubriques, etc, etc...
C'est l'esprit du programme initial
Pareil pour la barre d'état. On peut choisir le nombre de cases, mais pas leur largeur.
Bref, t'as encore du boulot :mrgreen:
PS : La barre d'état est verrouillée si on ne crée pas de menu. Ça ne devrait pas. :| :wink:
C'est vrai, et d'accord avec toi, du moins en partie.
Tout comme toi, ce n'est pas fait pour être complet et comme pour l'original, c'est seulement pour donner une trame de base sans plus.
En réalité je n'ai ajouté que deux case a cocher pour avoir un menu et une barre d'état quand on demande un menu... Mais rien n'empêche de la rendre indépendante
Le reste = Avec du copier/coller/supprimer permet très vite de compléter ou d'adapter.
Soit avoir rapidement un base sans trop avoir à coder. :mrgreen: Et de fait si on veux plus que ça, "PureForm" ou "Visual Designer" font l'affaire. :wink:
Encore merci pour l'idée de départ.

Personnellement, je trouve que l'idée est excellente, à encourager, ne serait ce que pour le code, pour l'idée, elle a le mérite d'exister !!

Un grand bravo à de telles initiatives !!

Phil
PS: En réalité, j'aimerais travailler sur un RAD dans lequel j'intégrerais un SGBDR style Access mais totalement sous PB (libéré des SQL, Lite ou moins Lite).
Pour les développeurs, avec le RAD on crée le corps de l'application : Menus, Fenêtre, Fichiers et relations.
Et avec des librairies open sources d'exploitation du SGDGR sous PB, chacun peux réaliser ses spécificités.
En gros et raccourcis, un "PureForm" mais étendu avec gestion de fichier relationnel.
J'ai déjà fait ça sous DOS et a existé de 1987-1994... Mais voilà, pas trop le courage de m'y remettre, trop vieux ? Peut-être !
Alors de temps en temps, je fait un bout de quelques chose... Qui sais, un jours, j'en aurais peut-être suffisamment des bouts qui bout a bout, ferons ce que je veux :lol:

Re: WindowMaker

Publié : jeu. 17/févr./2011 14:19
par dayvid
C pas mal sa dic donc :)

moi j'aimerais faire un truc du genre aussi donc sa pourra me servire sa !
http://www.purebasic.fr/french/viewtopi ... =1&t=11495