Example #1
0
func mainform_OnPaint(arg *gform.EventArg) {
	var mf *Mainform
	var ok bool
	var data *gform.PaintEventData

	if mf, ok = arg.Sender().(*Mainform); ok {
		if data, ok = arg.Data().(*gform.PaintEventData); ok {
			gResMainformBkColor := gform.RGB(255, 255, 255)
			bkBrush := gform.NewSolidColorBrush(gResMainformBkColor)
			defer bkBrush.Dispose()
			borderBrush := gform.NewSolidColorBrush(gform.RGB(154, 154, 154))
			defer borderBrush.Dispose()
			borderPen := gform.NewPen(w32.PS_COSMETIC|w32.PS_SOLID, 1, borderBrush)
			defer borderPen.Dispose()
			data.Canvas.DrawRect(mf.ClientRect(), borderPen, bkBrush)

			// Draw title bar
			w := mf.Width()
			titleRect := gform.NewRect(1, 1, w-1, 22)
			titleBrush := gform.NewSolidColorBrush(gMainformTitleBarColor)
			defer titleBrush.Dispose()
			data.Canvas.FillRect(titleRect, titleBrush)

			// Draw title text
			f := gform.NewFont("Bauhaus 93", 9, 0)
			defer f.Dispose()
			titleRect.Inflate(-5, 0)
			data.Canvas.DrawText(mf.Caption(), titleRect, w32.DT_LEFT|w32.DT_VCENTER|w32.DT_SINGLELINE, f, gResMainformBkColor)

			// Draw "Drop Here"
			f = gform.NewFont("Bauhaus 93", 25, gform.FontBold)
			defer f.Dispose()
			bodyRect := gform.NewRect(1, 50, w-1, 120)
			data.Canvas.DrawText("Drop Here", bodyRect, w32.DT_CENTER|w32.DT_VCENTER|w32.DT_SINGLELINE, f, gform.RGB(187, 187, 187))

			// Draw drop arrow
			if bmp, err := gform.NewBitmapFromResource(gform.GetAppInstance(), w32.MakeIntResource(IDR_DROPARROW), gResPNG, gResMainformBkColor); err == nil {
				data.Canvas.DrawBitmap(bmp, (w-bmp.Width())/2, 110)
				bmp.Dispose()
			}

			// Draw bottom panel
			h := mf.Height()
			bottomRect := gform.NewRect(1, 150, w-1, h-1)
			data.Canvas.FillRect(bottomRect, titleBrush)
		}
	}
}
Example #2
0
func progressButton_OnPaint(arg *gform.EventArg) {
	rc := arg.Sender().ClientRect()

	if pb, ok := arg.Sender().(*ProgressButton); ok {
		pen := gform.NewNullPen()
		defer pen.Dispose()
		brush := gform.NewSolidColorBrush(pb.bgColor)
		defer brush.Dispose()

		var data *gform.PaintEventData
		if data, ok = arg.Data().(*gform.PaintEventData); ok {
			data.Canvas.DrawRect(rc, pen, brush)
		}
	}
}