Code: Select all
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;-==================================================================================================
;- PVG_CAD - 2D/3D
;---------------------------------------------------------------------------------------------------
;- Pajot Valley Graphics
;- Marc
;- 06/12/2011 - 19:10:00
;-==================================================================================================
;---------------------------------------------------------------------------------------------------
;- LOAD IMAGES
;---------------------------------------------------------------------------------------------------
LoadImage(20, "Move_Button_Gray.bmp")
LoadImage(21, "Move_Button_Green.bmp")
LoadImage(25, "Close_Button_Gray.bmp")
LoadImage(26, "Close_Button_Red.bmp")
LoadImage(29, "Line_Tool.bmp")
LoadImage(30, "LineStandard.bmp")
LoadImage(31, "LineDotted.bmp")
LoadImage(32, "LineDashed.bmp")
;---------------------------------------------------------------------------------------------------
;- SETUP WINDOW
;---------------------------------------------------------------------------------------------------
OpenWindow(0, 50, 50, 800, 600, " - PVG 3d Studio - Lines, Arrows... - ", #PB_Window_SystemMenu)
;---------------------------------------------------------------------------------------------------
;- CREATE USER ZONE
;---------------------------------------------------------------------------------------------------
MDIGadget(39, 0, 0, 800, 600, 0, 0, #PB_MDI_BorderLess | #PB_MDI_NoScrollBars)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;-==================================================================================================
;---------------------------------------------------------------------------------------------------
;- CREATE DRAWING ZONE
;---------------------------------------------------------------------------------------------------
If OpenWindow(1, 10, 10, 800, 600, "Drawing Zone", #PB_Window_BorderLess, 0)
AddGadgetItem(39, 1, "", #PB_Ignore, #PB_Window_Tool) ;#PB_Window_BorderLess)
CanvasGadget(2, 0, 0, 800, 600, #PB_Canvas_Keyboard)
StartDrawing(CanvasOutput(2))
Box(0, 0, 800, 600, RGB(200, 250, 100))
StopDrawing()
EndIf
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;-==================================================================================================
;---------------------------------------------------------------------------------------------------
;- CREATE TOOLBAR - LINE SELECTION
;---------------------------------------------------------------------------------------------------
PVG_CAD_Create_Toolbar_Lines:
If OpenWindow(3, 0, 0, 0, 0, "Line Selection", #PB_Window_BorderLess, WindowID(0))
; AddGadgetItem(39, 3, "", #PB_Ignore, #PB_Window_Tool) ;#PB_Window_BorderLess)
; SetParent_(WindowID(2), WindowID(0))
ResizeWindow(3, 250, 300, 600, 24)
ContainerGadget(4, 0, 0, 600, 24, #PB_Container_BorderLess)
SetGadgetColor(4, #PB_Gadget_BackColor, RGB(150, 150, 150))
GadgetToolTip(4, "Line Selection Toolbar")
CanvasGadget(5, 0, 0, 16, 24, #PB_Canvas_Keyboard)
StartDrawing(CanvasOutput(5))
DrawImage(ImageID(20), 0, 0, 16, 24)
StopDrawing()
ImageGadget(6, 20, 1, 26, 22, ImageID(29))
ComboBoxGadget(7, 50, 2, 150, 20)
AddGadgetItem(7, 0, "Standard")
AddGadgetItem(7, 1, "Dotted")
AddGadgetItem(7, 2, "Dashed")
SetGadgetState(7, 0)
ImageGadget(8, 205, 2, 50, 20, ImageID(30))
CanvasGadget(9, 584, 0, 16, 24, #PB_Canvas_Keyboard)
StartDrawing(CanvasOutput(9))
DrawImage(ImageID(25), 0, 0, 16, 24)
StopDrawing()
CloseGadgetList()
EndIf
; SetWindowLongPtr_(WindowID(3), #GWL_EXSTYLE, #WS_EX_LAYERED)
; SetLayeredWindowAttributes_(WindowID(3), 0, 185, #LWA_ALPHA)
SetWindowLong_(WindowID(3), #GWL_EXSTYLE, GetWindowLong_(WindowID(3), #GWL_EXSTYLE) | #WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(3), 0, 200, #LWA_ALPHA)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;-==================================================================================================
;---------------------------------------------------------------------------------------------------
;- CREATE TOOLBAR - POINT SELECTION
;---------------------------------------------------------------------------------------------------
PVG_CAD_Create_Toolbar_Points:
If OpenWindow(10, 0, 0, 0, 0, "Point Selection", #PB_Window_BorderLess, WindowID(0))
; AddGadgetItem(39, 10, "", #PB_Ignore, #PB_Window_Tool) ;#PB_Window_BorderLess)
; SetParent_(WindowID(10), WindowID(1))
ResizeWindow(10, 250, 350, 400, 24)
ContainerGadget(11, 0, 0, 600, 24, #PB_Container_BorderLess)
SetGadgetColor(11, #PB_Gadget_BackColor, RGB(150, 150, 150))
GadgetToolTip(11, "Point Selection Toolbar")
CanvasGadget(16, 0, 0, 16, 24, #PB_Canvas_Keyboard)
StartDrawing(CanvasOutput(16))
DrawImage(ImageID(20), 0, 0, 16, 24)
StopDrawing()
CanvasGadget(19, 384, 0, 16, 24, #PB_Canvas_Keyboard)
StartDrawing(CanvasOutput(19))
DrawImage(ImageID(25), 0, 0, 16, 24)
StopDrawing()
CloseGadgetList()
EndIf
SetWindowLong_(WindowID(10), #GWL_EXSTYLE, GetWindowLong_(WindowID(10), #GWL_EXSTYLE) | #WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(10), 0, 200, #LWA_ALPHA) ;$80
;-==================================================================================================
;- DO LOOP
;---------------------------------------------------------------------------------------------------
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
;-[CANVAS - DRAWING ZONE]---------------------------------------------------------------------------
; Case 1
; EventType = EventType()
; Select EventType
; Case #PB_EventType_MouseMove
;; PVG_CAD_Mouse_PosX_New = GetGadgetAttribute(PVG_CAD_Canvas_Num, #PB_Canvas_MouseX)
;; PVG_CAD_Mouse_PosY_New = GetGadgetAttribute(PVG_CAD_Canvas_Num, #PB_Canvas_MouseY)
;; PVG_CAD_Mouse_DeltaX = PVG_CAD_Mouse_PosX_Old - PVG_CAD_Mouse_PosX_New
;; PVG_CAD_Mouse_DeltaY = PVG_CAD_Mouse_PosY_Old - PVG_CAD_Mouse_PosY_New
; EndSelect
;-[CANVAS - TOOLBAR - LINE SELECTION ZONE]----------------------------------------------------------
Case 5
EventType = EventType()
Select EventType
Case #PB_EventType_LeftButtonDown
Mouse_LeftButton_Status.b = 1
Mouse_Gadget_PosX.w = GetGadgetAttribute(5, #PB_Canvas_MouseX)
Mouse_Gadget_PosY.w = GetGadgetAttribute(5, #PB_Canvas_MouseY)
; Mouse_Gadget_PosX.w = WindowMouseX(0)
; Mouse_Gadget_PosY.w = WindowMouseX(0)
Case #PB_EventType_LeftButtonUp
Mouse_LeftButton_Status = 0
Case #PB_EventType_MouseEnter
StartDrawing(CanvasOutput(5))
DrawImage(ImageID(21), 0, 0, 16, 24)
StopDrawing()
Case #PB_EventType_MouseLeave
StartDrawing(CanvasOutput(5))
DrawImage(ImageID(20), 0, 0, 16, 24)
StopDrawing()
Case #PB_EventType_MouseMove
If Mouse_LeftButton_Status = 1
; Mouse_PosX_New.w = WindowMouseX(0)
; Mouse_PosY_New.w = WindowMouseY(0)
Mouse_PosX_New.w = DesktopMouseX()
Mouse_PosY_New.w = DesktopMouseY()
If Mouse_PosX_New < 0
Gadget_PosX.w = Mouse_Gadget_PosX
Else
Gadget_PosX.w = Mouse_PosX_New - Mouse_Gadget_PosX
EndIf
If Mouse_PosY_New < 0
Gadget_PosY.w = Mouse_PosY_New
Else
Gadget_PosY.w = Mouse_PosY_New - Mouse_Gadget_PosY
EndIf
ResizeWindow(3, Gadget_PosX, Gadget_PosY, #PB_Ignore, #PB_Ignore)
EndIf
EndSelect
;-[CANVAS - TOOLBAR - LINE SELECTION ZONE]----------------------------------------------------------
Case 9
EventType = EventType()
Select EventType
Case #PB_EventType_MouseEnter
StartDrawing(CanvasOutput(9))
DrawImage(ImageID(26), 0, 0, 16, 24)
StopDrawing()
Case #PB_EventType_MouseLeave
StartDrawing(CanvasOutput(9))
DrawImage(ImageID(25), 0, 0, 16, 24)
StopDrawing()
EndSelect
;- [COMBO BOX GADGET]-------------------------------------------------------------------------------
Case 7
EventType = EventType()
Select EventType
Case #PB_EventType_Change
Select GetGadgetState(7)
Case 0
SetGadgetState(8, ImageID(30))
Case 1
SetGadgetState(8, ImageID(31))
Case 2
SetGadgetState(8, ImageID(32))
EndSelect
EndSelect
;-[CANVAS - TOOLBAR - LINE SELECTION ZONE]----------------------------------------------------------
Case 16
EventType = EventType()
Select EventType
Case #PB_EventType_LeftButtonDown
Mouse_LeftButton_Status.b = 1
Mouse_Gadget_PosX.w = GetGadgetAttribute(16, #PB_Canvas_MouseX)
Mouse_Gadget_PosY.w = GetGadgetAttribute(16, #PB_Canvas_MouseY)
; Mouse_Gadget_PosX.w = WindowMouseX(0)
; Mouse_Gadget_PosY.w = WindowMouseX(0)
Case #PB_EventType_LeftButtonUp
Mouse_LeftButton_Status = 0
Case #PB_EventType_MouseEnter
StartDrawing(CanvasOutput(16))
DrawImage(ImageID(21), 0, 0, 16, 24)
StopDrawing()
Case #PB_EventType_MouseLeave
StartDrawing(CanvasOutput(16))
DrawImage(ImageID(20), 0, 0, 16, 24)
StopDrawing()
Case #PB_EventType_MouseMove
If Mouse_LeftButton_Status = 1
; Mouse_PosX_New.w = WindowMouseX(0)
; Mouse_PosY_New.w = WindowMouseY(0)
Mouse_PosX_New.w = DesktopMouseX()
Mouse_PosY_New.w = DesktopMouseY()
If Mouse_PosX_New < 0
Gadget_PosX.w = Mouse_Gadget_PosX
Else
Gadget_PosX.w = Mouse_PosX_New - Mouse_Gadget_PosX
EndIf
If Mouse_PosY_New < 0
Gadget_PosY.w = Mouse_PosY_New
Else
Gadget_PosY.w = Mouse_PosY_New - Mouse_Gadget_PosY
EndIf
ResizeWindow(10, Gadget_PosX, Gadget_PosY, #PB_Ignore, #PB_Ignore)
EndIf
EndSelect
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
End
;-==================================================================================================
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<o>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Marc,
