Moveable toolbar

Share your advanced PureBasic knowledge/code with the community.
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Moveable toolbar

Post by Hroudtwolf »

Code updated For 5.20+

Hello,

This demonstate a moveable toolbar.

I wish a lot of fun with it :-)

Code: Select all

; Movable Toolbar
; 2005 Hroudtwolf
; PureBasic-Lounge.de & English PureBasic forums

Declare CreateToolBarBox ()

Enumeration
  #Hauptfenster
  #ToolBarBox
  #Tools
  #TB_New
  #TB_Open
  #TB_Save
  #TB_Cut
  #TB_Copy
  #TB_Paste
EndEnumeration

#Hauptfensterflag=#PB_Window_ScreenCentered|#PB_Window_SystemMenu

If OpenWindow (#Hauptfenster,0,0,700,500,"Movable Toolbar Test",#Hauptfensterflag)
  
  CreateToolBarBox () ; Jumping to the procedure which will making the moveable toolbar
  
  Repeat
    FensterErreigniss=WaitWindowEvent ()
    Select FensterErreigniss
      Case #PB_Event_CloseWindow
        SchliesseProgramm=1
      Case #WM_LBUTTONDOWN
        If EventWindow()=#ToolBarBox
          SendMessage_(WindowID(#ToolBarBox),#WM_NCLBUTTONDOWN, #HTCAPTION,0)
        EndIf
    EndSelect
  Until SchliesseProgramm=1
EndIf
End


Procedure CreateToolBarBox ()
  TBWHnd=OpenWindow (#ToolBarBox,10,50,177,25,"",#WS_POPUP|#WS_BORDER)
  SetParent_(TBWHnd,WindowID(#Hauptfenster))
  SetWindowLong_(TBWHnd,#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
  If CreateToolBar (#Tools,TBWHnd)
    ToolBarSeparator()
    ToolBarSeparator()
    ToolBarStandardButton(#TB_New, #PB_ToolBarIcon_New)
    ToolBarStandardButton(#TB_Open, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(#TB_Save, #PB_ToolBarIcon_Save)
    ToolBarSeparator()
    ToolBarStandardButton(#TB_Cut, #PB_ToolBarIcon_Cut)   
    ToolBarStandardButton(#TB_Copy, #PB_ToolBarIcon_Copy)   
    ToolBarStandardButton(#TB_Paste, #PB_ToolBarIcon_Paste) 
    ToolBarSeparator()
    ToolBarSeparator()
  EndIf
EndProcedure

Last edited by Hroudtwolf on Sun Oct 30, 2005 2:03 pm, edited 1 time in total.
User avatar
GeoTrail
Addict
Addict
Posts: 2794
Joined: Fri Feb 13, 2004 12:45 am
Location: Bergen, Norway
Contact:

Post by GeoTrail »

Very cool.
Btw, on line 23 there should be a ; instead of : ;)
I Stepped On A Cornflake!!! Now I'm A Cereal Killer!
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

Oh sorry. Repaired

> ; <and > : < are next to one another on german keyboards.

And thank you.
rsts
Addict
Addict
Posts: 2736
Joined: Wed Aug 24, 2005 8:39 am
Location: Southwest OH - USA

Post by rsts »

Hey, thats cool.

Now I just gotta find a place I can use it. :)

cheers
Blade
Enthusiast
Enthusiast
Posts: 362
Joined: Wed Aug 06, 2003 2:49 pm
Location: Venice - Italy, Japan when possible.
Contact:

Post by Blade »

Very nice! :)

After playing with code, I've seen that removing the line

Code: Select all

SetWindowLong_(TBWHnd.l,#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
Doesn't have any effect... Is it right or have I missed something?
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

Look at the taskbar ;-)
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

That's a dirty trick! :lol: Nice one.
I may look like a mule, but I'm not a complete ass.
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

I played a little bit more...

Code: Select all


;Menu+StatusBar replacement + Toolbox
;2005 Hroudtwolf
;PureBasic-Lounge.de

Declare CreateReplacedMenu()
Declare CreateReplacedStatusbar()
Declare CreateToolBarBox ()

Enumeration
   #Hauptfenster
   #MenubarArea
   #Teslist
   #Menus
   #mn_New
   #mn_Open
   #mn_Save
   #mn_Cut
   #mn_Copy
   #mn_Paste
   #Status
   #ToolBarBox
   #Tools
   #TB_New
   #TB_Open
   #TB_Save
   #TB_Cut
   #TB_Copy
   #TB_Paste
EndEnumeration

#Hauptfensterflag=#PB_Window_ScreenCentered|#PB_Window_SystemMenu

If OpenWindow (#Hauptfenster,0,0,700,500,#Hauptfensterflag,"Menu replacement Test")

If CreateGadgetList (WindowID(#Hauptfenster))
  ListViewGadget (#Teslist,0,0,200,500)
  For x=1 To 50
    AddGadgetItem (#Teslist,-1,RSet(Str(Random(99999999)),8,"0")+" : "+RSet(Str(Random(99999999)),8,"0")+" : "+RSet(Str(Random(99999999)),8,"0"))
  Next x
EndIf

CreateReplacedMenu()
CreateReplacedStatusbar()
CreateToolBarBox ()


  Repeat
    FensterErreigniss.l=WaitWindowEvent ()
    Select FensterErreigniss.l
       Case #PB_Event_CloseWindow
          SchliesseProgramm.l=1
       Case #WM_LBUTTONDOWN
          If EventWindowID()=#ToolBarBox
            SendMessage_(WindowID(#ToolBarBox),#WM_NCLBUTTONDOWN, #HTCAPTION,0)
          EndIf
    EndSelect
  Until SchliesseProgramm.l=1
  EndIf
End

Procedure CreateReplacedMenu()
  ChildBoard.l=OpenWindow (#MenubarArea,200,0,500,500,#PB_Window_BorderLess,"",WindowID(#Hauptfenster))
  SetParent_(ChildBoard.l,WindowID(#Hauptfenster))
  SetWindowLong_(ChildBoard.l,#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
  MenuHandle.l=CreateMenu (#Menus ,ChildBoard.l)
  If MenuHandle.l
    MenuTitle ("Datei")
    MenuItem (#mn_New,"Neu")
    MenuItem (#mn_Open,"Öffnen")
    MenuItem (#mn_Save,"Laden")
    MenuTitle ("Bearbeiten")
    MenuItem (#mn_cut,"Ausschneiden")
    MenuItem (#mn_copy,"Kopieren")
    MenuItem (#mn_paste,"Einfügen")
  EndIf
EndProcedure

Procedure CreateReplacedStatusbar()
   CreateStatusBar (#Status,WindowID(#MenubarArea))
   AddStatusBarField (200)
   AddStatusBarField (500)
EndProcedure

Procedure CreateToolBarBox ()
   TBWHnd.l=OpenWindow (#ToolBarBox,0,1,177,25,#WS_POPUP|#WS_BORDER,"")
   SetParent_(TBWHnd.l,WindowID(#MenubarArea))
   SetWindowPos_(TBWHnd.l,#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
   SetWindowLong_(TBWHnd.l,#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
   If CreateToolBar (#Tools,TBWHnd.l)
    ToolBarSeparator()
    ToolBarSeparator()
    ToolBarStandardButton(#TB_New, #PB_ToolBarIcon_New)
    ToolBarStandardButton(#TB_Open, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(#TB_Save, #PB_ToolBarIcon_Save)
     ToolBarSeparator()
    ToolBarStandardButton(#TB_Cut, #PB_ToolBarIcon_Cut)   
    ToolBarStandardButton(#TB_Copy, #PB_ToolBarIcon_Copy)   
    ToolBarStandardButton(#TB_Paste, #PB_ToolBarIcon_Paste) 
    ToolBarSeparator()
    ToolBarSeparator()
   EndIf
EndProcedure
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

This is getting interesting now. I could definitely use this.
I may look like a mule, but I'm not a complete ass.
User avatar
blueznl
PureBasic Expert
PureBasic Expert
Posts: 6166
Joined: Sat May 17, 2003 11:31 am
Contact:

Post by blueznl »

yeah, needed this, gonna try tonight
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
Post Reply