March 08, 2021, 04:25:57 PM
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
Forum
Help
Search
Gallery
Login
Register
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
BlitzPlus Gui
»
[bmx] .Net-style Toolbars by JoshK [ 1+ years ago ]
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: [bmx] .Net-style Toolbars by JoshK [ 1+ years ago ] (Read 878 times)
BlitzBot
Jr. Member
Posts: 1
[bmx] .Net-style Toolbars by JoshK [ 1+ years ago ]
«
on:
June 29, 2017, 12:28:38 AM »
Title :
.Net-style Toolbars
Author :
JoshK
Posted :
1+ years ago
Description :
This gives you a modern .NET-style toolbar. Just import this file into your program and go. Unfortunately you have to adjust the positions of your other gadgets in the window, but it's worth it.
[img]www.leadwerks.com/post/beautybars.html">
Code :
Code: BlitzMax
SuperStrict
Import
maxgui.drivers
Import
maxgui.maxgui
Import
brl.pixmap
?win32
Import
pub.win32
?
Function
CreateToolbar:TGadget
(
source:
Object
,x:
Int
,y:
Int
,width:
Int
,height:
Int
,group:TGadget,style:
Int
=
0
)
?macos
Return
maxgui.maxgui.CreateToolbar
(
source,x,y,width,height,group,style
)
?
?win32
Local
color:
Int
Local
b:
Byte
[
4
]
Local
bt:
Byte
[
4
]
Local
pixmap:TPixmap
Local
panel:TGadget
Local
gradient:TPixmap
Local
toolbarheight:
Int
Local
btncolor:
Int
btncolor=GetSysColor
(
COLOR_BTNFACE
)
MemCopy
bt,
Varptr
btncolor,
4
pixmap=TPixmap
(
source
)
If
Not
pixmap pixmap=LoadPixmap
(
source
)
If
Not
pixmap
Return
Null
toolbarheight=pixmap.height+
8
panel=CreatePanel
(
0
,
0
,group.ClientWidth
(
)
,toolbarheight,group
)
panel.SetLayout
1
,
1
,
1
,
0
Local
toolbar:TGadget=maxgui.maxgui.CreateToolbar
(
source,x,y,width,height,panel,style
)
gradient=CreatePixmap
(
1
,toolbarheight,PF_RGBA8888
)
For
Local
px:
Int
=
0
To
gradient.width-
1
For
Local
py:
Int
=
0
To
gradient.height-
1
color=gradient.ReadPixel
(
px,py
)
MemCopy
b,
Varptr
color,
4
Local
m#
Local
factor#=
0.9
'make this bigger (but less than one) for a less visible gradient
m=
(
1.0
-
Float
(
py
)
/
Float
(
gradient.height
)
)
*
(
1.0
-factor
)
+factor
m=
Min
(
1.0
,m
)
If
py=gradient.height-
1
m=factor*
0.85
b
[
0
]
=bt
[
2
]
*m
b
[
1
]
=bt
[
1
]
*m
b
[
2
]
=bt
[
0
]
*m
b
[
3
]
=
255
MemCopy
Varptr
color,b,
4
gradient.WritePixel px,py,color
Next
Next
SetGadgetPixmap panel,gradient
Return
toolbar
?
EndFunction
Rem
'Example
AppTitle
=
"ToolBar Example"
Global
window:TGadget = CreateWindow
(
AppTitle
,
100
,
100
,
600
,
300
,
Null
, WINDOW_TITLEBAR|WINDOW_STATUS|WINDOW_RESIZABLE|WINDOW_CLIENTCOORDS
)
Global
toolbar:TGadget = CreateToolbar
(
"toolbar.png"
,
0
,
0
,
0
,
0
, window
)
DisableGadgetItem toolbar,
2
SetToolbarTips toolbar,
[
"New"
,
"Open"
,
"Save should be disabled."
]
AddGadgetItem toolbar,
""
,
0
, GADGETICON_SEPARATOR
'Add a separator.
AddGadgetItem toolbar,
"Toggle"
, GADGETITEM_TOGGLE,
2
,
"This toggle button should change to a light bulb when clicked."
While
WaitEvent
(
)
Print CurrentEvent.ToString
(
)
Select
EventID
(
)
Case
EVENT_WINDOWCLOSE, EVENT_APPTERMINATE;
End
'ToolBar Event(s)
'EventData() holds the index of the toolbar item clicked.
Case
EVENT_GADGETACTION
Select
EventSource
(
)
Case
toolbar
SetStatusText window,
"Toolbar Item Clicked: "
+ EventData
(
)
EndSelect
End
Select
Wend
endrem
Comments :
none...
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
BlitzPlus Gui
»
[bmx] .Net-style Toolbars by JoshK [ 1+ years ago ]
SimplePortal 2.3.6 © 2008-2014, SimplePortal