Page 1 of 1

GadgetHelp a tiny help tool

Posted: Sun Sep 01, 2013 9:06 pm
by minimy
I needed a way to control a lot of gadgets and the reference numbers I provided little information for their control.
I decided to write this small code to help me identify each.
It may seem silly, but the truth is that it is very useful when there are many details involved. Hope will be as useful as it has been to me.

Code: Select all

;// MiniHelpGadget. Toni 2013
;// For free use, no limits, no demo, north?  ;-)
;// 

Structure tipo
  Gadget.l
  Name.s
EndStructure
Global NewList GadgetHelp.tipo()

Procedure AddGadgetHelp(Gadget.l,Name.s)
  AddElement(GadgetHelp())
  GadgetHelp()\Gadget = Gadget
  GadgetHelp()\Name   = Name
  ProcedureReturn Gadget
EndProcedure

Procedure FindGadgetNumberHelp(Name.s)
  Protected Gadget.l = -1
  ForEach GadgetHelp()
    If Mode = 1
      If LCase(GadgetHelp()\Name) = LCase(Name)
        Gadget = GadgetHelp()\Gadget
      EndIf
    Else
      If GadgetHelp()\Name = Name
        Gadget = GadgetHelp()\Gadget
      EndIf
    EndIf
  Next
  ProcedureReturn Gadget
EndProcedure

Procedure.s FindGadgetNameHelp(Gadget.l)
  Protected Name.s = ""
  ForEach GadgetHelp()
    If GadgetHelp()\Gadget = Gadget
      Name = GadgetHelp()\Name
    EndIf
  Next
  ProcedureReturn Name
EndProcedure


Global Window_0
Global Button_0
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
Procedure OpenWindow_Window_0()
  Window_0 = OpenWindow(#PB_Any, 495, 221, 400, 309, "GadgetHelp by Toni", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  If Window_0
    Button_0 = AddGadgetHelp(ButtonGadget(#PB_Any, 5,  10, 75, 25, "Stop"), "Button stop")
    Button_1 = AddGadgetHelp(ButtonGadget(#PB_Any, 5,  40, 75, 25, "Play"), "Button play")
    Button_2 = AddGadgetHelp(ButtonGadget(#PB_Any, 5,  70, 75, 25, "Hello"),"Button hello")
    Button_3 = AddGadgetHelp(ButtonGadget(#PB_Any, 5, 100, 75, 25, "Bye!"), "Button exit")
  EndIf
EndProcedure

CompilerIf  Not #PB_Compiler_IsIncludeFile ; when not is include, run the next code

OpenWindow_Window_0()

  Repeat
    Event = WaitWindowEvent(1)
    
    Select Event
      Case #PB_Event_Gadget
        EventGadget = EventGadget()
        EventType   = EventType()
        If GadgetType(EventGadget) = #PB_GadgetType_Button
          Name$=FindGadgetNameHelp(EventGadget)
          MessageRequester("GadgetHelp","Gadget name: "+Name$+Chr(13)+"Gadget NÂș  : "+FindGadgetNumberHelp(Name$))
        EndIf
        
      Case #PB_Event_CloseWindow
        EventWindow = EventWindow()
        If EventWindow = Window_0
          CloseWindow(Window_0)
          Window_0 = 0
          Break
        EndIf
    EndSelect
    
  ForEver

CompilerEndIf

My english is bad, Im sorry