Page 12 of 13

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Sun Oct 04, 2009 4:29 pm
by srod
No problem. 8)

I'll include this version in the next update.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Sun Oct 04, 2009 5:34 pm
by Arctic Fox
Thanks!
btw you can always include both versions and let the user decide which to use.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Sun Oct 04, 2009 7:46 pm
by Marco2007
Arctic Fox and the man behind Arctic Reports...is this about an arctic Explorer :)

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Tue Nov 10, 2009 11:37 am
by Denis
srod,
i'm a little bit lost with your nxgadget library :oops:
Could you help me to solve my problem ?

I use a nxSplitter with two area.
I will put in the first one, a textgadget and below a listicon.

I put textgadget and listicon inside a containergadget (wich is the gadget i put to splittergadget), my problem is that the container gadget is correctly resized when nxgadget dims changed but nothing arrive for textgadget & listicon. I have to resize them.
May be i have to use #nxSplitter_GadgetsResized msg witch seems to be dispached by nxSplitter_DespatchCallbackMessage() proc but how to do that ?

May i create a callback proc for that ?

How to give my callback proc address to nx functions ?

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Tue Nov 10, 2009 12:11 pm
by srod
Hi Denis,

yes you can use the #nxSplitter_GadgetsResized message if you wish, though I normally just subclass the container gadget and look out for #WM_SIZE messages. I then resize the child-controls as appropriate (in your case the text gadget and listicon).

Here's an example of using the #nxSplitter_GadgetsResized message :

Code: Select all

#INCLUDE_NEXUS_SPLITTER = 1  ;Declare this before including the Nexus source.

IncludePath "..\..\SOURCE\"
  XIncludeFile "nxGadgets.pbi"
IncludePath ""

;Gadget#.
  Enumeration
    #Container
    #Button1
    #ListIcon
    #Button2
    #Splitter
  EndEnumeration
  
;///////////////////////////////////////////////////////////////////////////////////////////
Procedure.l SplitterCallback(id, uMsg, wParam, lParam)
  Protected result = #True
  Select uMsg
    Case #nxSplitter_GadgetsResized
      If id = #Splitter
        ;Resize listicon.
        ;Note how we resize the width to keep pace with the container. This is to account for the user resizing the main window
        ;which will in turn resize the splitter control because of the #WM_SIZE handler below.
          ResizeGadget(#ListIcon, #PB_Ignore, #PB_Ignore, GadgetWidth(#Container), wParam - 42)
      EndIf
  EndSelect
  ProcedureReturn result
EndProcedure

If OpenWindow(0, 100, 100, 600, 600, "©nxSoftware - nxSplitter example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)

  ContainerGadget(#Container, 0, 0, 0, 0)
    ButtonGadget(#Button1, 10, 10, 80, 20, "HELLO!")
    ListIconGadget(#ListIcon, 0, 40, 0, 0, "ListIcon!", 120)
  CloseGadgetList()

  ButtonGadget(#Button2, 0,0,0,0, "CLICK")
  ;Create the nxSplitter.
    nxSplitter_Create(#Splitter, 10,10, WindowWidth(0)-20, WindowHeight(0)-20, #Container, #Button2, 3, #nxSplitter_GripperWithDrag, @SplitterCallback())


  Repeat
    Event = WaitWindowEvent()
    Select Event
      Case #WM_SIZE
        ResizeGadget(#Splitter, #PB_Ignore, #PB_Ignore, WindowWidth(0)-20, WindowHeight(0)-20)
    EndSelect
  Until Event = #PB_Event_CloseWindow
EndIf
I hope this helps.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Tue Nov 10, 2009 2:22 pm
by Denis
Many Thanks for example srod,
i'll take a closer look.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Tue Nov 10, 2009 2:55 pm
by Denis
Srod, it seems to be Ok.

Just 1 questions :

What is the default return value for the SplitterCallback() proc
In your example, it's #True, but in my code if i use #False, it' s Ok (see below my callback)

Tks :D

Code: Select all

Procedure.l SplitterCallback(id, uMsg, wParam, lParam)
     Protected result
     Select uMsg
          Case #nxSplitter_GadgetsResized
               Select id
                    Case #Splitter_Separation_Icones, #Splitter_Horizontal
                         ;Resize listicon.
                         ;Note how we resize the width to keep pace with the container. This is to account for the user resizing the main window
                         ;which will in turn resize the splitter control because of the #WM_SIZE handler below.
                             ResizeGadget(#ListIcon_Group_icons, #PB_Ignore, #PB_Ignore, GadgetWidth(#Container_ListIcon_Group_icons), GadgetHeight(#Container_ListIcon_Group_icons) - #HauteurBarreSeparation)
                         result = #True
               EndSelect
               
          Case #nxSplitter_SliderAnchored
               nx_SetGadgetAttribute(id, #nxSplitter_SliderType, #nxSplitter_GripperWithNoDrag)
               result = #True
               
          Case #nxSplitter_AnchorReleased
               nx_SetGadgetAttribute(id, #nxSplitter_SliderType, #nxSplitter_GripperWithDrag)
               result = #True
               
          Case #nxSplitter_GripperClicked
               result = #False
     EndSelect
     
     ProcedureReturn result
EndProcedure

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Tue Nov 10, 2009 4:49 pm
by srod
Well, there is no default really except to say that #True will ensure 'default behaviour' when (and if) appropriate for the individual message. Returning #False will occasionally prohibit certain actions etc.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Tue Nov 10, 2009 6:33 pm
by Denis
Ok Srod anf Thanks again.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Sun Mar 07, 2010 4:40 pm
by Poshu
Mmmh, I'm toying with the property box since a few minutes and I cannot change any value. I've tried thoses:
nx_SetGadgetItemText(#PropertyBox,5,"152")
nx_SetGadgetItemState(#PropertyBox,5,152)
nx_SetGadgetItemData(#PropertyBox,5,152)
Since I'm a plain idiot, I would ask something like "pleaaaase, help"...

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Sun Mar 07, 2010 11:29 pm
by srod

Code: Select all

nx_SetGadgetItemText(1, 1, "New value text!", #nxPropertyBox_ValueText)
Look in the nxGadgets_Residents.pbi file for a list of constants to use with nx_SetGadgetItemText() with regards the property box control.

Code: Select all

    Enumeration
      #nxPropertyBox_LabelText = 1
      #nxPropertyBox_ValueText
      #nxPropertyBox_FontName
      #nxPropertyBox_FilePathSelectorTitle
      #nxPropertyBox_FileSelectorPattern
      #nxPropertyBox_FileName
      #nxPropertyBox_PathName
      #nxPropertyBox_ComboOptionsText
      #nxPropertyBox_LabelTextPriorToEdit  ;Get only.
                                           ;Only valid before the newly added text is accepted by the #nxPropertyBox_ItemUpdated message.
      #nxPropertyBox_ValueTextPriorToEdit  ;Get only.
                                           ;Only valid before the newly added text is accepted by the #nxPropertyBox_ItemUpdated message.

    EndEnumeration

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Mon Mar 08, 2010 8:51 am
by Poshu
Ohhh. I should have think of that. Thank you!

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Mon Apr 05, 2010 4:25 am
by Armoured
Hi srod, :)
Only three questions:

1) Your Nexus gadgets works well with Pb 4.41 and Pb 4.50?

2) Your Split gadget works well with multiple groups of gadgets?
For example I can use your Split gadget between a ListIconGadget on the right and an EditorGadget with a StringGadget on the left (A gui like the mIRC program)?

3) The Split gadget work inside a PanelGadget?

Thanks :wink:

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Mon Apr 05, 2010 11:22 am
by srod
Hi.

1) Yes. For the property-box control make sure you use the PB 4.5 compatible version of EsGRID.
2) Yes. *
3) Yes.

*Use a container gadget as one of the splitter's child controls. You will then need to take steps to resize the containers child gadgets whenever the splitter resizes the container etc. For this either subclass the container or use the #nxSplitter_GadgetsResized callback message. I advise the #nxSplitter_GadgetsResized message.

Re: Nexus -library of custom gadgets (updated : 28/7/09)

Posted: Thu Jun 03, 2010 9:34 pm
by X0r
Hey srod,
thanks for this great lib! :)

Is there any way to make the items of the nxPropertyBox control readonly?