Page 2 of 2

Re: [460 Final] How to transparent container on canvas gadge

Posted: Tue Dec 06, 2011 11:06 pm
by marc_256
My best result I can get till now with more TOOLBARS...

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,