Worklog for Zakk

MS Paint Clone

Return to Worklogs

Redux(Posted 2009-12-22)
I've finally moved to BlitzMax, so most of my BB code will have to be discarded.

--------------------
<XtiaeN>: i wear my rollerblades while i hack games, for quick getaways

Basics(Posted 2009-11-13)
The goal with this project is to more-or-less reproduce most of the functions of MS Paint with a similiar interface and a few added tools and such. So far I've just reproduced the basic window layout and the menu structure. Thanks to Leadwerks for answering my question about menu seperators before I could ask it :) http://www.blitzbasic.com/Community/posts.php?topic=29528
(I'm picky about the details)

Global window=CreateWindow("My Paint",0,0,GraphicsWidth(),GraphicsHeight(),0,15)
MaximizeWindow window

Global menu=WindowMenu(window)
Global file=CreateMenu("File",1,menu)
CreateMenu "New",11,file
CreateMenu "Open...",12,file
CreateMenu "Save",13,file
CreateMenu "Save As...",14,file
CreateMenu "",0,file
CreateMenu "Exit",15,file
Global edit=CreateMenu("Edit",2,menu)
CreateMenu "Undo",21,edit
CreateMenu "Redo",22,edit
CreateMenu "",0,file
CreateMenu "Cut",23,edit
CreateMenu "Copy",24,edit
CreateMenu "Paste",25,edit
CreateMenu "Clear Selection",26,edit
CreateMenu "Invert Selection",27,edit
CreateMenu "Select All",28,edit
Global view=CreateMenu("View",3,menu)
	Global zoom=CreateMenu("Zoom",31,view)
	Global custom=CreateMenu("Custom",311,zoom)
		Dim zoomlevel(7)
		zoomlevel(0)=CreateMenu("12.5%",3111,custom)
		For n=0 To 5
			num=Int(25*(2^n))
			zoomlevel(n+1)=CreateMenu(num+"%",3112+n,custom)
		Next
		CheckMenu zoomlevel(3)
	CreateMenu "",0,zoom
	CreateMenu "Show Grid",312,zoom
Global image=CreateMenu("Image",4,menu)
CreateMenu "Flip/Rotate...",41,image
CreateMenu "Resize/Skew...",42,image
CreateMenu "Crop",43,image
CreateMenu "Invert Colors",44,image
CreateMenu "Attributes...",45,image
CreateMenu "Clear Image",46,image
CreateMenu "Draw Opaque",47,image
Global colors=CreateMenu("Colors",5,menu)
CreateMenu "Edit Colors...",51,colors
UpdateWindowMenu window

Global workspace=CreatePanel(56,49,1310,626,window,1)
SetPanelColor workspace,192,192,192


Repeat
id=WaitEvent()
Select id
Case $401

Case $101

Case $803
	Quit()
End Select
Forever





Function Quit()
	FreeGadget window
	End
End Function




--------------------
<XtiaeN>: i wear my rollerblades while i hack games, for quick getaways